window._bd_share_main.F.module("base/tangram", function(e, t) {
  var n,
    r = (n = (function() {
      var e,
        t = (e =
          t ||
          function(e, n) {
            return t.dom ? t.dom(e, n) : null;
          });
      (t.version = "2.0.2.5"), (t.guid = "$BAIDU$"), (t.key = "tangram_guid");
      var n = (window[t.guid] = window[t.guid] || {});
      return (
        (n.versions || (n.versions = [])).push(t.version),
        (t.check = t.check || function() {}),
        (t.lang = t.lang || {}),
        (t.forEach = function(e, t, n) {
          var r, i, s;
          if (typeof t == "function" && e) {
            i = typeof e.length == "number" ? e.length : e.byteLength;
            if (typeof i == "number") {
              if (Object.prototype.toString.call(e) === "[object Function]")
                return e;
              for (r = 0; r < i; r++)
                (s = e[r]),
                  s === undefined && (s = e.charAt && e.charAt(r)),
                  t.call(n || null, s, r, e);
            } else if (typeof e == "number")
              for (r = 0; r < e; r++) t.call(n || null, r, r, r);
            else if (typeof e == "object")
              for (r in e) e.hasOwnProperty(r) && t.call(n || null, e[r], r, e);
          }
          return e;
        }),
        (t.type = (function() {
          var e = {},
            n = [
              ,
              "HTMLElement",
              "Attribute",
              "Text",
              ,
              ,
              ,
              ,
              "Comment",
              "Document",
              ,
              "DocumentFragment"
            ],
            r = "Array Boolean Date Error Function Number RegExp String",
            i = { object: 1, function: "1" },
            s = e.toString;
          return (
            t.forEach(r.split(" "), function(n) {
              (e["[object " + n + "]"] = n.toLowerCase()),
                (t["is" + n] = function(e) {
                  return t.type(e) == n.toLowerCase();
                });
            }),
            function(t) {
              var r = typeof t;
              return i[r]
                ? t == null
                  ? "null"
                  : t._type_ ||
                    e[s.call(t)] ||
                    n[t.nodeType] ||
                    (t == t.window ? "Window" : "") ||
                    "object"
                : r;
            }
          );
        })()),
        (t.isDate = function(e) {
          return (
            t.type(e) == "date" && e.toString() != "Invalid Date" && !isNaN(e)
          );
        }),
        (t.isElement = function(e) {
          return t.type(e) == "HTMLElement";
        }),
        (t.isEnumerable = function(e) {
          return (
            e != null &&
            (typeof e == "object" ||
              ~Object.prototype.toString.call(e).indexOf("NodeList")) &&
            (typeof e.length == "number" ||
              typeof e.byteLength == "number" ||
              typeof e[0] != "undefined")
          );
        }),
        (t.isNumber = function(e) {
          return t.type(e) == "number" && isFinite(e);
        }),
        (t.isPlainObject = function(e) {
          var n,
            r = Object.prototype.hasOwnProperty;
          if (t.type(e) != "object") return !1;
          if (
            e.constructor &&
            !r.call(e, "constructor") &&
            !r.call(e.constructor.prototype, "isPrototypeOf")
          )
            return !1;
          for (n in e);
          return n === undefined || r.call(e, n);
        }),
        (t.isObject = function(e) {
          return typeof e == "function" || (typeof e == "object" && e != null);
        }),
        (t.extend = function(e, n) {
          var r,
            i,
            s,
            o,
            u,
            a = 1,
            f = arguments.length,
            l = e || {},
            c,
            h;
          t.isBoolean(e) && (a = 2) && (l = n || {}),
            !t.isObject(l) && (l = {});
          for (; a < f; a++) {
            i = arguments[a];
            if (t.isObject(i))
              for (s in i) {
                (o = l[s]), (u = i[s]);
                if (o === u) continue;
                t.isBoolean(e) &&
                e &&
                u &&
                (t.isPlainObject(u) || (c = t.isArray(u)))
                  ? (c
                      ? ((c = !1), (h = o && t.isArray(o) ? o : []))
                      : (h = o && t.isPlainObject(o) ? o : {}),
                    (l[s] = t.extend(e, h, u)))
                  : u !== undefined && (l[s] = u);
              }
          }
          return l;
        }),
        (t.createChain = function(e, n, r) {
          var i =
              e == "dom"
                ? "$DOM"
                : "$" + e.charAt(0).toUpperCase() + e.substr(1),
            s = Array.prototype.slice,
            o = t[e];
          return o
            ? o
            : ((o = t[e] =
                n ||
                function(n) {
                  return t.extend(n, t[e].fn);
                }),
              (o.extend = function(n) {
                var r;
                for (r in n)
                  (function(n) {
                    n != "splice" &&
                      (o[n] = function() {
                        var r = arguments[0];
                        e == "dom" && t.type(r) == "string" && (r = "#" + r);
                        var i = o(r),
                          u = i[n].apply(i, s.call(arguments, 1));
                        return t.type(u) == "$DOM" ? u.get(0) : u;
                      });
                  })(r);
                return t.extend(t[e].fn, n);
              }),
              (t[e][i] = t[e][i] || r || function() {}),
              (o.fn = t[e][i].prototype),
              o);
        }),
        (t.overwrite = function(e, t, n) {
          for (var r = t.length - 1; r > -1; r--) e.prototype[t[r]] = n(t[r]);
          return e;
        }),
        (t.object = t.object || {}),
        (t.object.isPlain = t.isPlainObject),
        t.createChain("string", function(e) {
          var n = t.type(e),
            r = new String(~"string|number".indexOf(n) ? e : n),
            i = String.prototype;
          return (
            t.forEach(t.string.$String.prototype, function(e, t) {
              i[t] || (r[t] = e);
            }),
            r
          );
        }),
        t.string.extend({
          trim: (function() {
            var e = new RegExp(
              "(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)",
              "g"
            );
            return function() {
              return this.replace(e, "");
            };
          })()
        }),
        t.createChain("array", function(e) {
          var n = t.array.$Array.prototype,
            r = Array.prototype,
            i;
          t.type(e) != "array" && (e = []);
          for (i in n) e[i] = n[i];
          return e;
        }),
        t.overwrite(t.array.$Array, "concat slice".split(" "), function(e) {
          return function() {
            return t.array(Array.prototype[e].apply(this, arguments));
          };
        }),
        t.array.extend({
          indexOf: function(e, n) {
            t.check(".+(,number)?", "baidu.array.indexOf");
            var r = this.length;
            (n |= 0) < 0 && (n = Math.max(0, r + n));
            for (; n < r; n++) if (n in this && this[n] === e) return n;
            return -1;
          }
        }),
        t.createChain(
          "Callbacks",
          function(e) {
            var n = e;
            return (
              t.type(e) === "string" &&
                ((n = {}),
                t.forEach(e.split(/\s/), function(e) {
                  n[e] = !0;
                })),
              new t.Callbacks.$Callbacks(n)
            );
          },
          function(e) {
            var n = t.extend({}, e || {}),
              r = [],
              i = [],
              s = 0,
              o,
              u,
              a,
              f,
              l = function(e, t) {
                var u, l;
                if (!i || !r) return;
                (o = n.memory && e), (a = !0), i.push(e);
                if (f) return;
                f = !0;
                while ((u = i.shift()))
                  for (s = t || 0; (l = r[s]); s++)
                    if (l.apply(u[0], u[1]) === !1 && n.stopOnFalse) {
                      o = !1;
                      break;
                    }
                (f = !1), n.once && (r = []);
              },
              c = {
                add: function() {
                  if (!r) return this;
                  var e = r && r.length;
                  return (
                    (function i(e) {
                      var s = e.length,
                        o,
                        u;
                      for (var a = 0, u; a < s; a++) {
                        if (!(u = e[a])) continue;
                        (o = t.type(u)),
                          o === "function"
                            ? (!n.unique || !c.has(u)) && r.push(u)
                            : u && u.length && o !== "string" && i(u);
                      }
                    })(arguments),
                    !f && o && l(o, e),
                    this
                  );
                },
                remove: function() {
                  if (!r) return this;
                  var e;
                  return (
                    t.forEach(arguments, function(n) {
                      while ((e = t.array(r).indexOf(n)) > -1)
                        r.splice(e, 1), f && e < s && s--;
                    }),
                    this
                  );
                },
                has: function(e) {
                  return t.array(r).indexOf(e) > -1;
                },
                empty: function() {
                  return (r = []), this;
                },
                disable: function() {
                  return (r = i = o = undefined), this;
                },
                disabled: function() {
                  return !r;
                },
                lock: function() {
                  return (u = !0), !o && c.disable(), this;
                },
                fired: function() {
                  return a;
                },
                fireWith: function(e, t) {
                  return (a && n.once) || u
                    ? this
                    : ((t = t || []),
                      (t = [e, t.slice ? t.slice() : t]),
                      l(t),
                      this);
                },
                fire: function() {
                  return c.fireWith(this, arguments), this;
                }
              };
            return c;
          }
        ),
        t.createChain(
          "Deferred",
          function(e) {
            return new t.Deferred.$Deferred(e);
          },
          function(e) {
            var n = this,
              r = "pending",
              i = [
                ["resolve", "done", t.Callbacks("once memory"), "resolved"],
                ["reject", "fail", t.Callbacks("once memory"), "rejected"],
                ["notify", "progress", t.Callbacks("memory")]
              ],
              s = {
                state: function() {
                  return r;
                },
                always: function() {
                  return n.done(arguments).fail(arguments), this;
                },
                then: function() {
                  var e = arguments;
                  return t
                    .Deferred(function(r) {
                      t.forEach(i, function(i, s) {
                        var o = i[0],
                          u = e[s];
                        n[i[1]](
                          t.type(u) === "function"
                            ? function() {
                                var e = u.apply(this, arguments);
                                e && t.type(e.promise) === "function"
                                  ? e
                                      .promise()
                                      .done(r.resolve)
                                      .fail(r.reject)
                                      .progress(r.notify)
                                  : r[o + "With"](this === n ? r : this, [e]);
                              }
                            : r[o]
                        );
                      });
                    })
                    .promise();
                },
                promise: function(e) {
                  return e != null ? t.extend(e, s) : s;
                }
              };
            (s.pipe = s.then),
              t.forEach(i, function(e, t) {
                var o = e[2],
                  u = e[3];
                (s[e[1]] = o.add),
                  u &&
                    o.add(
                      function() {
                        r = u;
                      },
                      i[t ^ 1][2].disable,
                      i[2][2].lock
                    ),
                  (n[e[0]] = o.fire),
                  (n[e[0] + "With"] = o.fireWith);
              }),
              s.promise(n),
              e && e.call(n, n);
          }
        ),
        (t.when =
          t.when ||
          function(e) {
            function f(e, t, n) {
              return function(r) {
                (t[e] = this),
                  (n[e] = arguments.length > 1 ? arguments : r),
                  n === o ? s.notifyWith(t, n) : --i || s.resolveWith(t, n);
              };
            }
            var n = arguments,
              r = arguments.length,
              i = r !== 1 || (e && t.type(e.promise) === "function") ? r : 0,
              s = i === 1 ? e : t.Deferred(),
              o,
              u,
              a;
            if (r > 1) {
              (o = new Array(r)), (u = new Array(r)), (a = new Array(r));
              for (var l = 0; l < r; l++)
                n[l] && t.type(n[l].promise) === "function"
                  ? n[l]
                      .promise()
                      .done(f(l, a, n))
                      .fail(s.reject)
                      .progress(f(l, u, o))
                  : --i;
            }
            return !i && s.resolveWith(a, n), s.promise();
          }),
        (t.global =
          t.global ||
          (function() {
            var e = (t._global_ = window[t.guid]),
              n = (e._ = e._ || {});
            return function(e, t, r) {
              return (
                typeof t != "undefined"
                  ? (r || (t = typeof n[e] == "undefined" ? t : n[e]),
                    (n[e] = t))
                  : e && typeof n[e] == "undefined" && (n[e] = {}),
                n[e]
              );
            };
          })()),
        (t.browser =
          t.browser ||
          (function() {
            var e = navigator.userAgent,
              n = {
                isStrict: document.compatMode == "CSS1Compat",
                isGecko: /gecko/i.test(e) && !/like gecko/i.test(e),
                isWebkit: /webkit/i.test(e)
              };
            try {
              /(\d+\.\d+)/.test(external.max_version) &&
                (n.maxthon = +RegExp.$1);
            } catch (r) {}
            switch (!0) {
              case /msie (\d+\.\d+)/i.test(e):
                n.ie = document.documentMode || +RegExp.$1;
                break;
              case /chrome\/(\d+\.\d+)/i.test(e):
                n.chrome = +RegExp.$1;
                break;
              case /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(e) &&
                !/chrome/i.test(e):
                n.safari = +(RegExp.$1 || RegExp.$2);
                break;
              case /firefox\/(\d+\.\d+)/i.test(e):
                n.firefox = +RegExp.$1;
                break;
              case /opera(?:\/| )(\d+(?:\.\d+)?)(.+?(version\/(\d+(?:\.\d+)?)))?/i.test(
                e
              ):
                n.opera = +(RegExp.$4 || RegExp.$1);
            }
            return t.extend(t, n), n;
          })()),
        (t.id = (function() {
          var e = t.global("_maps_id"),
            n = t.key;
          return (
            (window[t.guid]._counter = window[t.guid]._counter || 1),
            function(r, i) {
              var s,
                o = t.isString(r),
                u = t.isObject(r),
                a = u ? r[n] : o ? r : "";
              if (t.isString(i))
                switch (i) {
                  case "get":
                    return u ? a : e[a];
                  case "remove":
                  case "delete":
                    if ((s = e[a]))
                      t.isElement(s) && t.browser.ie < 8
                        ? s.removeAttribute(n)
                        : delete s[n],
                        delete e[a];
                    return a;
                  default:
                    return (
                      o
                        ? ((s = e[a]) && delete e[a], s && (e[(s[n] = i)] = s))
                        : u && (a && delete e[a], (e[(r[n] = i)] = r)),
                      i
                    );
                }
              return u
                ? (!a && (e[(r[n] = a = t.id())] = r), a)
                : o
                ? e[r]
                : "TANGRAM_" + t._global_._counter++;
            }
          );
        })()),
        (t._util_ = t._util_ || {}),
        (t._util_.support =
          t._util_.support ||
          (function() {
            var e = document.createElement("div"),
              t,
              n,
              r,
              i,
              s;
            return (
              e.setAttribute("className", "t"),
              (e.innerHTML =
                ' <link/><table></table><a href="/a">a</a><input type="checkbox"/>'),
              (n = e.getElementsByTagName("A")[0]),
              (n.style.cssText = "top:1px;float:left;opacity:.5"),
              (i = document.createElement("select")),
              (s = i.appendChild(document.createElement("option"))),
              (r = e.getElementsByTagName("input")[0]),
              (r.checked = !0),
              (t = { dom: { div: e, a: n, select: i, opt: s, input: r } }),
              t
            );
          })()),
        t
          .createChain(
            "event",
            (function() {
              var e = {};
              return function(n, r) {
                switch (t.type(n)) {
                  case "object":
                    return e.originalEvent === n
                      ? e
                      : (e = new t.event.$Event(n));
                  case "$Event":
                    return n;
                }
              };
            })(),
            function(e) {
              var n,
                r,
                i,
                s = this;
              this._type_ = "$Event";
              if (typeof e == "object" && e.type) {
                s.originalEvent = n = e;
                for (var o in n) typeof n[o] != "function" && (s[o] = n[o]);
                n.extraData && t.extend(s, n.extraData),
                  (s.target = s.srcElement =
                    n.srcElement ||
                    ((r = n.target) && (r.nodeType == 3 ? r.parentNode : r))),
                  (s.relatedTarget =
                    n.relatedTarget ||
                    ((r = n.fromElement) &&
                      (r === s.target ? n.toElement : r))),
                  (s.keyCode = s.which = n.keyCode || n.which),
                  !s.which &&
                    n.button !== undefined &&
                    (s.which =
                      n.button & 1
                        ? 1
                        : n.button & 2
                        ? 3
                        : n.button & 4
                        ? 2
                        : 0);
                var u = document.documentElement,
                  a = document.body;
                (s.pageX =
                  n.pageX ||
                  n.clientX +
                    ((u && u.scrollLeft) || (a && a.scrollLeft) || 0) -
                    ((u && u.clientLeft) || (a && a.clientLeft) || 0)),
                  (s.pageY =
                    n.pageY ||
                    n.clientY +
                      ((u && u.scrollTop) || (a && a.scrollTop) || 0) -
                      ((u && u.clientTop) || (a && a.clientTop) || 0)),
                  s.data;
              }
              this.timeStamp = new Date().getTime();
            }
          )
          .extend({
            stopPropagation: function() {
              var e = this.originalEvent;
              e &&
                (e.stopPropagation
                  ? e.stopPropagation()
                  : (e.cancelBubble = !0));
            },
            preventDefault: function() {
              var e = this.originalEvent;
              e &&
                (e.preventDefault ? e.preventDefault() : (e.returnValue = !1));
            }
          }),
        (t.merge = function(e, t) {
          var n = e.length,
            r = 0;
          if (typeof t.length == "number")
            for (var i = t.length; r < i; r++) e[n++] = t[r];
          else while (t[r] !== undefined) e[n++] = t[r++];
          return (e.length = n), e;
        }),
        t.array.extend({
          unique: function(e) {
            var t = this.length,
              n = this.slice(0),
              r,
              i;
            "function" != typeof e &&
              (e = function(e, t) {
                return e === t;
              });
            while (--t > 0) {
              (i = n[t]), (r = t);
              while (r--)
                if (e(i, n[r])) {
                  n.splice(t, 1);
                  break;
                }
            }
            t = this.length = n.length;
            for (r = 0; r < t; r++) this[r] = n[r];
            return this;
          }
        }),
        (t.query =
          t.query ||
          (function() {
            function f(n, o) {
              var u,
                a,
                f,
                l,
                c,
                h,
                p,
                d,
                v = [];
              return (
                e.test(n)
                  ? ((f = RegExp.$2),
                    (c = RegExp.$1 || "*"),
                    t.forEach(o.getElementsByTagName(c), function(e) {
                      e.id == f && v.push(e);
                    }))
                  : r.test(n) || n == "*"
                  ? t.merge(v, o.getElementsByTagName(n))
                  : i.test(n)
                  ? ((p = []),
                    (c = RegExp.$1),
                    (h = RegExp.$2),
                    (u = " " + h + " "),
                    o.getElementsByClassName
                      ? (p = o.getElementsByClassName(h))
                      : t.forEach(o.getElementsByTagName("*"), function(e) {
                          e.className &&
                            ~(" " + e.className + " ").indexOf(u) &&
                            p.push(e);
                        }),
                    c && (c = c.toUpperCase())
                      ? t.forEach(p, function(e) {
                          e.tagName.toUpperCase() === c && v.push(e);
                        })
                      : t.merge(v, p))
                  : s.test(n) &&
                    ((d = n.substr(1).split(".")),
                    t.forEach(o.getElementsByTagName("*"), function(e) {
                      e.className &&
                        ((u = " " + e.className + " "),
                        (a = !0),
                        t.forEach(d, function(e) {
                          ~u.indexOf(" " + e + " ") || (a = !1);
                        }),
                        a && v.push(e));
                    })),
                v
              );
            }
            function l(e, r) {
              var i,
                s = e,
                o = "__tangram__",
                u = [];
              return !r &&
                n.test(s) &&
                (i = document.getElementById(s.substr(1)))
                ? [i]
                : ((r = r || document),
                  r.querySelectorAll
                    ? (r.nodeType == 1 && !r.id
                        ? ((r.id = o),
                          (i = r.querySelectorAll("#" + o + " " + s)),
                          (r.id = ""))
                        : (i = r.querySelectorAll(s)),
                      i)
                    : ~s.indexOf(" ")
                    ? (t.forEach(f(s.substr(0, s.indexOf(" ")), r), function(
                        e
                      ) {
                        t.merge(u, l(s.substr(s.indexOf(" ") + 1), e));
                      }),
                      u)
                    : f(s, r));
            }
            var e = /^(\w*)#([\w\-\$]+)$/,
              n = /^#([\w\-\$]+)$/,
              r = /^\w+$/,
              i = /^(\w*)\.([\w\-\$]+)$/,
              s = /^(\.[\w\-\$]+)+$/,
              o = /\s*,\s*/,
              u = /\s+/g,
              a = Array.prototype.slice;
            return function(e, n, r) {
              if (!e || typeof e != "string") return r || [];
              var i = [];
              return (
                (e = e.replace(u, " ")),
                r && t.merge(i, r) && (r.length = 0),
                t.forEach(e.indexOf(",") > 0 ? e.split(o) : [e], function(e) {
                  t.merge(i, l(e, n));
                }),
                t.merge(r || [], t.array(i).unique())
              );
            };
          })()),
        t
          .createChain(
            "dom",
            function(e, n) {
              var r,
                i = new t.dom.$DOM(n);
              if (!e) return i;
              if (e._type_ == "$DOM") return e;
              if (e.nodeType || e == e.window)
                return (i[0] = e), (i.length = 1), i;
              if (e.length && i.toString.call(e) != "[object String]")
                return t.merge(i, e);
              if (typeof e == "string")
                if (
                  e.charAt(0) == "<" &&
                  e.charAt(e.length - 1) == ">" &&
                  e.length > 2
                ) {
                  var s = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
                    o = n && n._type_ === "$DOM" ? n[0] : n,
                    u = s.exec(e);
                  (o = o && o.nodeType ? o.ownerDocument || o : document),
                    (u = u
                      ? [o.createElement(u[1])]
                      : t.dom.createElements
                      ? t.dom.createElements(e)
                      : []),
                    t.merge(i, u);
                } else t.query(e, n, i);
              else if (typeof e == "function") return i.ready ? i.ready(e) : i;
              return i;
            },
            function(e) {
              (this.length = 0),
                (this._type_ = "$DOM"),
                (this.context = e || document);
            }
          )
          .extend({
            size: function() {
              return this.length;
            },
            splice: function() {},
            get: function(e) {
              return typeof e == "number"
                ? e < 0
                  ? this[this.length + e]
                  : this[e]
                : Array.prototype.slice.call(this, 0);
            },
            toArray: function() {
              return this.get();
            }
          }),
        t.dom.extend({
          each: function(e) {
            t.check("function", "baidu.dom.each");
            var n,
              r,
              i = this.length;
            for (n = 0; n < i; n++) {
              r = e.call(this[n], n, this[n], this);
              if (r === !1 || r == "break") break;
            }
            return this;
          }
        }),
        (t._util_.eventBase = t._util_.eventBase || {}),
        void (function(e, t) {
          if (e.listener) return;
          (t = e.listener = {}),
            window.addEventListener
              ? (t.add = function(e, t, n) {
                  e.addEventListener(t, n, !1);
                })
              : window.attachEvent &&
                (t.add = function(e, t, n) {
                  e.attachEvent("on" + t, n);
                });
        })(t._util_.eventBase),
        void (function(e, n) {
          if (e.queue) return;
          var r = t.id,
            i = (e.queue = {}),
            s = (i.attaCache = t.global("eventQueueCache")),
            o = e.listener;
          (i.get = function(e, t, n, i) {
            var o = r(e),
              u;
            return (
              s[o] || (s[o] = {}),
              (u = s[o]),
              t
                ? (!u[t] && n && this.setupCall(e, t, n, (u[t] = []), i),
                  u[t] || [])
                : u
            );
          }),
            (i.add = function(e, t, n, r, i) {
              this.get(e, t, n, i).push(r);
            }),
            (i.remove = function(e, t, n) {
              var r, i;
              if (t) {
                var r = this.get(e, t);
                if (n)
                  for (var s = r.length - 1; s >= 0; s--)
                    r[s].orig == n && r.splice(s, 1);
                else r.length = 0;
              } else {
                var i = this.get(e);
                for (var s in i) i[s].length = 0;
              }
            }),
            (i.handlerList = function(e, n) {
              var r = [];
              for (var i = 0, s; (s = n[i]); i++) {
                if (s.delegate && t.dom(s.delegate, e).size() < 1) continue;
                r.push(s);
              }
              return r;
            }),
            (i.call = function(e, n, r, s) {
              if (r) {
                if (!r.length) return;
                var o = [].slice.call(arguments, 1),
                  u = [];
                o.unshift((s = t.event(s || n))),
                  (s.type = n),
                  s.currentTarget || (s.currentTarget = e),
                  s.target || (s.target = e),
                  (r = i.handlerList(e, r));
                for (var a = 0, f, l = r.length; a < l; a++)
                  if ((f = r[a])) f.pkg.apply(e, o), f.one && u.unshift(a);
                if (u.length)
                  for (var a = 0, l = u.length; a < l; a++)
                    this.remove(e, n, r[a].fn);
              } else (r = this.get(e, n)), this.call(e, n, r, s);
            }),
            (i.setupCall = (function() {
              var e = function(e, t, n, r) {
                o.add(e, n, function(n) {
                  i.call(e, t, r, n);
                });
              };
              return function(n, r, i, s, o) {
                if (!o) e(n, r, i, s);
                else {
                  n = t.dom(o, n);
                  for (var u = 0, a = n.length; u < a; u++) e(n[u], r, i, s);
                }
              };
            })());
        })(t._util_.eventBase, t.event),
        void (function(e, n) {
          if (e.core) return;
          var r = e.queue,
            i = (e.core = {}),
            s = (n.special = {}),
            o = [].push,
            u = function(e, t) {
              for (var n = 0, r = t.length; n < r; n++)
                if (t.get(n).contains(e)) return t[n];
            };
          (i.build = function(e, n, r, i, a) {
            var f;
            return (
              i && (f = t.dom(i, e)),
              n in s && s[n].pack && (r = s[n].pack(r)),
              function(n) {
                var s = t.dom(n.target),
                  l = [n],
                  c;
                a && !n.data && (n.data = a),
                  n.triggerData && o.apply(l, n.triggerData);
                if (!f) return (n.result = r.apply(e, l));
                for (var h = 0; h < 2; h++) {
                  if ((c = u(n.target, f))) return (n.result = r.apply(c, l));
                  f = t.dom(i, e);
                }
              }
            );
          }),
            (i.add = function(e, t, n, i, o, u) {
              var a = this.build(e, t, n, i, o),
                f,
                l;
              (l = t),
                t in s && ((f = s[t].attachElements), (l = s[t].bindType || t)),
                r.add(
                  e,
                  t,
                  l,
                  { type: t, pkg: a, orig: n, one: u, delegate: i },
                  f
                );
            }),
            (i.remove = function(e, t, n, i) {
              r.remove(e, t, n, i);
            });
        })(t._util_.eventBase, t.event),
        t.dom.extend({
          on: function(e, n, r, i, s) {
            var o = t._util_.eventBase.core;
            return (
              typeof n == "object" && n
                ? ((i = r), (r = n), (n = null))
                : typeof r == "function"
                ? ((i = r), (r = null))
                : typeof n == "function" && ((i = n), (n = r = null)),
              typeof e == "string"
                ? ((e = e.split(/[ ,]+/)),
                  this.each(function() {
                    t.forEach(
                      e,
                      function(e) {
                        o.add(this, e, i, n, r, s);
                      },
                      this
                    );
                  }))
                : typeof e == "object" &&
                  (i && (i = null),
                  t.forEach(
                    e,
                    function(e, t) {
                      this.on(t, n, r, e, s);
                    },
                    this
                  )),
              this
            );
          }
        }),
        (t.dom.g = function(e) {
          return e
            ? "string" == typeof e || e instanceof String
              ? document.getElementById(e)
              : !e.nodeName || (e.nodeType != 1 && e.nodeType != 9)
              ? null
              : e
            : null;
        }),
        (t.event.on = t.on = function(e, n, r) {
          return (
            typeof e == "string" && (e = t.dom.g(e)),
            t.dom(e).on(n.replace(/^\s*on/, ""), r),
            e
          );
        }),
        void (function() {
          function w(e) {
            var n, r;
            if (!e || t.type(e) !== "string") return null;
            try {
              window.DOMParser
                ? ((r = new DOMParser()),
                  (n = r.parseFromString(e, "text/xml")))
                : ((n = new ActiveXObject("Microsoft.XMLDOM")),
                  (n.async = "false"),
                  n.loadXML(e));
            } catch (i) {
              n = undefined;
            }
            if (
              !n ||
              !n.documentElement ||
              n.getElementsByTagName("parsererror").length
            )
              throw new Error("Invalid XML: " + e);
            return n;
          }
          function E(e) {
            if (!e || t.type(e) !== "string") return null;
            e = t.string(e).trim();
            if (window.JSON && window.JSON.parse) return window.JSON.parse(e);
            if (
              l.test(
                e
                  .replace(h, "@")
                  .replace(p, "]")
                  .replace(c, "")
              )
            )
              return new Function("return " + e)();
            throw new Error("Invalid JSON: " + e);
          }
          function S(e) {
            e &&
              /\S/.test(e) &&
              (window.execScript ||
                function(e) {
                  window.eval.call(window, e);
                })(e);
          }
          function x(e) {
            return function(n, r) {
              t.type(n) !== "string" && ((r = n), (n = "*"));
              var i = n.toLowerCase().split(/\s+/),
                s,
                o;
              if (t.type(r) === "function")
                for (var u = 0, a; (a = i[u]); u++)
                  (s = /^\+/.test(a)),
                    s && (a = a.substr(1) || "*"),
                    (o = e[a] = e[a] || []),
                    o[s ? "unshift" : "push"](r);
            };
          }
          function T(e, t, n) {
            var r,
              i,
              s,
              o,
              u = e.contents,
              a = e.dataTypes,
              f = e.responseFields;
            for (i in f) i in n && (t[f[i]] = n[i]);
            while (a[0] === "*")
              a.shift(),
                r === undefined &&
                  (r = e.mimeType || t.getResponseHeader("content-type"));
            if (r)
              for (i in u)
                if (u[i] && u[i].test(r)) {
                  a.unshift(i);
                  break;
                }
            if (a[0] in n) s = a[0];
            else {
              for (i in n) {
                if (!a[0] || e.converters[i + " " + a[0]]) {
                  s = i;
                  break;
                }
                o || (o = i);
              }
              s = s || o;
            }
            if (s) return s !== a[0] && a.unshift(s), n[s];
          }
          function N(e, t) {
            var n = e.dataTypes.slice(),
              r = n[0],
              i = {},
              s,
              o;
            e.dataFilter && (t = e.dataFilter(t, e.dataType));
            if (n[1])
              for (var u in e.converters) i[u.toLowerCase()] = e.converters[u];
            for (var u = 0, a; (a = n[++u]); )
              if (a !== "*") {
                if (r !== "*" && r !== a) {
                  s = i[r + " " + a] || i["* " + a];
                  if (!s)
                    for (var f in i) {
                      o = f.split(" ");
                      if (o[1] === a) {
                        s = i[r + " " + o[0]] || i["* " + o[0]];
                        if (s) {
                          s === !0
                            ? (s = i[f])
                            : i[f] !== !0 && ((a = o[0]), n.splice(u--, 0, a));
                          break;
                        }
                      }
                    }
                  if (s !== !0)
                    if (s && e["throws"]) t = s(t);
                    else
                      try {
                        t = s(t);
                      } catch (l) {
                        return {
                          state: "parsererror",
                          error: s ? l : "No conversion from " + r + " to " + a
                        };
                      }
                }
                r = a;
              }
            return { state: "success", data: t };
          }
          function C(e, t, n, r, i, s) {
            (i = i || t.dataTypes[0]), (s = s || {}), (s[i] = !0);
            var o,
              u = e[i],
              a = u ? u.length : 0,
              f = e === v;
            for (var l = 0; l < a && (f || !o); l++)
              (o = u[l](t, n, r)),
                typeof o == "string" &&
                  (!f || s[o]
                    ? (o = undefined)
                    : (t.dataTypes.unshift(o), (o = C(e, t, n, r, o, s))));
            return (f || !o) && !s["*"] && (o = C(e, t, n, r, "*", s)), o;
          }
          function k(e, n) {
            var r = t.ajax.settings.flatOptions || {},
              i;
            for (var s in n)
              n[s] !== undefined && ((r[s] ? e : i || (i = {}))[s] = n[s]);
            i && t.extend(!0, e, i);
          }
          function L(e, n, r) {
            (r =
              t.type(r) === "function"
                ? r()
                : typeof r == "undefined" || r == null
                ? ""
                : r),
              e.push(encodeURIComponent(n) + "=" + encodeURIComponent(r));
          }
          function A(e, n, r, i) {
            if (t.type(r) === "array")
              t.forEach(r, function(t, r) {
                i || o.test(n)
                  ? L(e, n, t)
                  : A(e, n + "[" + (typeof t == "object" ? r : "") + "]", t, i);
              });
            else if (!i && t.type(r) === "object")
              for (var s in r) A(e, n + "[" + s + "]", r[s], i);
            else L(e, n, r);
          }
          function B() {
            try {
              return new window.XMLHttpRequest();
            } catch (e) {}
          }
          function j() {
            try {
              return new window.ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
          }
          var e = document.URL,
            n = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
            r = /^\/\//,
            i = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
            s = /#.*$/,
            o = /\[\]$/,
            u = /^(?:GET|HEAD)$/,
            a = /([?&])_=[^&]*/,
            f = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
            l = /^[\],:{}\s]*$/,
            c = /(?:^|:|,)(?:\s*\[)+/g,
            h = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
            p = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
            d = ["*/"] + ["*"],
            v = {},
            m = {},
            g = {},
            y = {},
            b = i.exec(e.toLowerCase()) || [];
          t.createChain(
            "ajax",
            function(e, n) {
              function H(e, t, n, r) {
                var i = t,
                  s,
                  u,
                  a,
                  f,
                  c;
                if (x === 2) return;
                (x = 2),
                  P && clearTimeout(P),
                  (_ = undefined),
                  (O = r || ""),
                  (D.readyState = e > 0 ? 4 : 0),
                  n && (f = T(o, D, n));
                if ((e >= 200 && e < 300) || e === 304)
                  o.ifModified &&
                    ((c = D.getResponseHeader("Last-Modified")),
                    c && (g[h] = c),
                    (c = D.getResponseHeader("Etag")),
                    c && (y[h] = c)),
                    e === 304
                      ? ((i = "notmodified"), (s = !0))
                      : ((s = N(o, f)),
                        (i = s.state),
                        (u = s.data),
                        (a = s.error),
                        (s = !a));
                else {
                  a = i;
                  if (!i || e) (i = "error"), e < 0 && (e = 0);
                }
                (D.status = e),
                  (D.statusText = "" + (t || i)),
                  s ? w.resolveWith(l, [u, i, D]) : w.rejectWith(l, [D, i, a]),
                  D.statusCode(S),
                  (S = undefined),
                  E.fireWith(l, [D, i]);
              }
              t.object.isPlain(e) && ((n = e), (e = undefined)), (n = n || {});
              var o = t.ajax.setup({}, n),
                l = o.context || o,
                c,
                h,
                p,
                w = t.Deferred(),
                E = t.Callbacks("once memory"),
                S = o.statusCode || {},
                x = 0,
                k = {},
                L = {},
                A = "canceled",
                O,
                M,
                _,
                D = t.extend(new t.ajax.$Ajax(e, o), {
                  readyState: 0,
                  setRequestHeader: function(e, t) {
                    if (!x) {
                      var n = e.toLowerCase();
                      (e = k[n] = k[n] || e), (L[e] = t);
                    }
                  },
                  getAllResponseHeaders: function() {
                    return x === 2 ? O : null;
                  },
                  getResponseHeader: function(e) {
                    var t;
                    if (x === 2) {
                      if (!M) {
                        M = {};
                        while ((t = f.exec(O))) M[t[1].toLowerCase()] = t[2];
                      }
                      t = M[e.toLowerCase()];
                    }
                    return t === undefined ? null : t;
                  },
                  overrideMimeType: function(e) {
                    return !x && (o.mimeType = e), this;
                  },
                  abort: function(e) {
                    return (e = e || A), _ && _.abort(e), H(0, e), this;
                  }
                }),
                P;
              w.promise(D),
                (D.success = D.done),
                (D.error = D.fail),
                (D.complete = E.add),
                (D.statusCode = function(e) {
                  if (e)
                    if (x < 2) for (var t in e) S[t] = [S[t], e[t]];
                    else D.always(e[D.status]);
                  return this;
                }),
                (o.url = ((e || o.url) + "")
                  .replace(s, "")
                  .replace(r, b[1] + "//")),
                (o.dataTypes = t
                  .string(o.dataType || "*")
                  .trim()
                  .toLowerCase()
                  .split(/\s+/)),
                o.crossDomain == null &&
                  ((p = i.exec(o.url.toLowerCase())),
                  (o.crossDomain = !(
                    !p ||
                    (p[1] == b[1] &&
                      p[2] == b[2] &&
                      (p[3] || (p[1] === "http:" ? 80 : 443)) ==
                        (b[3] || (b[1] === "http:" ? 80 : 443)))
                  ))),
                o.data &&
                  o.processData &&
                  t.type(o.data) !== "string" &&
                  (o.data = t.ajax.param(o.data, o.traditional)),
                C(v, o, n, D);
              if (x === 2) return "";
              (c = o.global),
                (o.type = o.type.toUpperCase()),
                (o.hasContent = !u.test(o.type));
              if (!o.hasContent) {
                o.data &&
                  ((o.url += (~o.url.indexOf("?") ? "&" : "?") + o.data),
                  delete o.data),
                  (h = o.url);
                if (o.cache === !1) {
                  var B = new Date().getTime(),
                    j = o.url.replace(a, "$1_=" + B);
                  o.url =
                    j +
                    (j === o.url
                      ? (~o.url.indexOf("?") ? "&" : "?") + "_=" + B
                      : "");
                }
              }
              ((o.data && o.hasContent && o.contentType !== !1) ||
                n.contentType) &&
                D.setRequestHeader("Content-Type", o.contentType),
                o.ifModified &&
                  ((h = h || o.url),
                  g[h] && D.setRequestHeader("If-Modified-Since", g[h]),
                  y[h] && D.setRequestHeader("If-None-Match", y[h])),
                D.setRequestHeader(
                  "Accept",
                  o.dataTypes[0] && o.accepts[o.dataTypes[0]]
                    ? o.accepts[o.dataTypes[0]] +
                        (o.dataTypes[0] !== "*" ? ", " + d + "; q=0.01" : "")
                    : o.accepts["*"]
                );
              for (var F in o.headers) D.setRequestHeader(F, o.headers[F]);
              if (
                !o.beforeSend ||
                (o.beforeSend.call(l, D, o) !== !1 && x !== 2)
              ) {
                A = "abort";
                for (var F in { success: 1, error: 1, complete: 1 }) D[F](o[F]);
                _ = C(m, o, n, D);
                if (!_) H(-1, "No Transport");
                else {
                  (D.readyState = 1),
                    o.async &&
                      o.timeout > 0 &&
                      (P = setTimeout(function() {
                        D.abort("timeout");
                      }, o.timeout));
                  try {
                    (x = 1), _.send(L, H);
                  } catch (I) {
                    if (!(x < 2)) throw I;
                    H(-1, I);
                  }
                }
                return D;
              }
              return D.abort();
            },
            function(e, t) {
              (this.url = e), (this.options = t);
            }
          ),
            (t.ajax.settings = {
              url: e,
              isLocal: n.test(b[1]),
              global: !0,
              type: "GET",
              contentType: "application/x-www-form-urlencoded; charset=UTF-8",
              processData: !0,
              async: !0,
              accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                text: "text/plain",
                json: "application/json, text/javascript",
                "*": d
              },
              contents: { xml: /xml/, html: /html/, json: /json/ },
              responseFields: { xml: "responseXML", text: "responseText" },
              converters: {
                "* text": window.String,
                "text html": !0,
                "text json": E,
                "text xml": w
              },
              flatOptions: { context: !0, url: !0 }
            }),
            (t.ajax.setup = function(e, n) {
              return (
                n ? k(e, t.ajax.settings) : ((n = e), (e = t.ajax.settings)),
                k(e, n),
                e
              );
            }),
            (t.ajax.param = function(e, n) {
              var r = [];
              if (t.type(e) === "array")
                t.forEach(e, function(e) {
                  L(r, e.name, e.value);
                });
              else for (var i in e) A(r, i, e[i], n);
              return r.join("&").replace(/%20/g, "+");
            }),
            (t.ajax.prefilter = x(v)),
            (t.ajax.transport = x(m));
          var O = [],
            M = /(=)\?(?=&|$)|\?\?/,
            _ = new Date().getTime();
          t.ajax.setup({
            jsonp: "callback",
            jsonpCallback: function() {
              var e = O.pop() || t.key + "_" + _++;
              return (this[e] = !0), e;
            }
          }),
            t.ajax.prefilter("json jsonp", function(e, n, r) {
              var i,
                s,
                o,
                u = e.data,
                a = e.url,
                f = e.jsonp !== !1,
                l = f && M.test(a),
                c =
                  f &&
                  !l &&
                  t.type(u) === "string" &&
                  !(e.contentType || "").indexOf(
                    "application/x-www-form-urlencoded"
                  ) &&
                  M.test(u);
              if (e.dataTypes[0] === "jsonp" || l || c)
                return (
                  (i = e.jsonpCallback =
                    t.type(e.jsonpCallback) === "function"
                      ? e.jsonpCallback()
                      : e.jsonpCallback),
                  (s = window[i]),
                  l
                    ? (e.url = a.replace(M, "$1" + i))
                    : c
                    ? (e.data = u.replace(M, "$1" + i))
                    : f &&
                      (e.url += (/\?/.test(a) ? "&" : "?") + e.jsonp + "=" + i),
                  (e.converters["script json"] = function() {
                    return o[0];
                  }),
                  (e.dataTypes[0] = "json"),
                  (window[i] = function() {
                    o = arguments;
                  }),
                  r.always(function() {
                    (window[i] = s),
                      e[i] && ((e.jsonpCallback = n.jsonpCallback), O.push(i)),
                      o && t.type(s) === "function" && s(o[0]),
                      (o = s = undefined);
                  }),
                  "script"
                );
            }),
            t.ajax.setup({
              accepts: {
                script:
                  "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
              },
              contents: { script: /javascript|ecmascript/ },
              converters: {
                "text script": function(e) {
                  return S(e), e;
                }
              }
            }),
            t.ajax.prefilter("script", function(e) {
              e.cache === undefined && (e.cache = !1),
                e.crossDomain && ((e.type = "GET"), (e.global = !1));
            }),
            t.ajax.transport("script", function(e) {
              if (e.crossDomain) {
                var t,
                  n =
                    document.head ||
                    document.getElementsByTagName("head")[0] ||
                    document.documentElement;
                return {
                  send: function(r, i) {
                    (t = document.createElement("script")),
                      (t.async = "async"),
                      e.scriptCharset && (t.charset = e.scriptCharset),
                      (t.src = e.url),
                      (t.onload = t.onreadystatechange = function(e, r) {
                        if (
                          r ||
                          !t.readyState ||
                          /loaded|complete/.test(t.readyState)
                        )
                          (t.onload = t.onreadystatechange = null),
                            n && t.parentNode && n.removeChild(t),
                            (t = undefined),
                            !r && i(200, "success");
                      }),
                      n.insertBefore(t, n.firstChild);
                  },
                  abort: function() {
                    t && t.onload(0, 1);
                  }
                };
              }
            });
          var D,
            P = 0,
            H = window.ActiveXObject
              ? function() {
                  for (var e in D) D[e](0, 1);
                }
              : !1;
          (t.ajax.settings.xhr = window.ActiveXObject
            ? function() {
                return (!this.isLocal && B()) || j();
              }
            : B),
            void (function(e) {
              t.extend(t._util_.support, {
                ajax: !!e,
                cors: !!e && "withCredentials" in e
              });
            })(t.ajax.settings.xhr()),
            t._util_.support.ajax &&
              t.ajax.transport(function(e) {
                if (!e.crossDomain || t._util_.support.cors) {
                  var n;
                  return {
                    send: function(r, i) {
                      var s,
                        o = e.xhr();
                      e.username
                        ? o.open(e.type, e.url, e.async, e.username, e.password)
                        : o.open(e.type, e.url, e.async);
                      if (e.xhrFields)
                        for (var u in e.xhrFields) o[u] = e.xhrFields[u];
                      e.mimeType &&
                        o.overrideMimeType &&
                        o.overrideMimeType(e.mimeType),
                        !e.crossDomain &&
                          !r["X-Requested-With"] &&
                          (r["X-Requested-With"] = "XMLHttpRequest");
                      try {
                        for (var u in r) o.setRequestHeader(u, r[u]);
                      } catch (a) {}
                      o.send((e.hasContent && e.data) || null),
                        (n = function(t, r) {
                          var u, a, f, l, c;
                          try {
                            if (n && (r || o.readyState === 4)) {
                              (n = undefined),
                                s &&
                                  ((o.onreadystatechange = function() {}),
                                  H && delete D[s]);
                              if (r) o.readyState !== 4 && o.abort();
                              else {
                                (u = o.status),
                                  (f = o.getAllResponseHeaders()),
                                  (l = {}),
                                  (c = o.responseXML),
                                  c && c.documentElement && (l.xml = c);
                                try {
                                  l.text = o.responseText;
                                } catch (h) {}
                                try {
                                  a = o.statusText;
                                } catch (h) {
                                  a = "";
                                }
                                !u && e.isLocal && !e.crossDomain
                                  ? (u = l.text ? 200 : 404)
                                  : u === 1223 && (u = 204);
                              }
                            }
                          } catch (p) {
                            !r && i(-1, p);
                          }
                          l && i(u, a, l, f);
                        }),
                        e.async
                          ? o.readyState === 4
                            ? setTimeout(n, 0)
                            : ((s = ++P),
                              H &&
                                (D || ((D = {}), t.dom(window).on("unload", H)),
                                (D[s] = n)),
                              (o.onreadystatechange = n))
                          : n();
                    },
                    abort: function() {
                      n && n(0, 1);
                    }
                  };
                }
              });
        })(),
        t.array.extend({
          contains: function(e) {
            return !!~this.indexOf(e);
          }
        }),
        (t.each = function(e, t, n) {
          var r, i, s, o;
          if (typeof t == "function" && e) {
            i = typeof e.length == "number" ? e.length : e.byteLength;
            if (typeof i == "number") {
              if (Object.prototype.toString.call(e) === "[object Function]")
                return e;
              for (r = 0; r < i; r++) {
                (s = e[r]),
                  s === undefined && (s = e.charAt && e.charAt(r)),
                  (o = t.call(n || s, r, s, e));
                if (o === !1 || o == "break") break;
              }
            } else if (typeof e == "number")
              for (r = 0; r < e; r++) {
                o = t.call(n || r, r, r, r);
                if (o === !1 || o == "break") break;
              }
            else if (typeof e == "object")
              for (r in e)
                if (e.hasOwnProperty(r)) {
                  o = t.call(n || e[r], r, e[r], e);
                  if (o === !1 || o == "break") break;
                }
          }
          return e;
        }),
        t.array.extend({
          each: function(e, n) {
            return t.each(this, e, n);
          },
          forEach: function(e, n) {
            return t.forEach(this, e, n);
          }
        }),
        t.array.extend({
          empty: function() {
            return (this.length = 0), this;
          }
        }),
        t.array.extend({
          filter: function(e, n) {
            var r = t.array([]),
              i,
              s,
              o,
              u = 0;
            if (t.type(e) === "function")
              for (i = 0, s = this.length; i < s; i++)
                (o = this[i]),
                  e.call(n || this, o, i, this) === !0 && (r[u++] = o);
            return r;
          }
        }),
        t.array.extend({
          find: function(e) {
            var n,
              r,
              i = this.length;
            if (t.type(e) == "function")
              for (n = 0; n < i; n++) {
                r = this[n];
                if (e.call(this, r, n, this) === !0) return r;
              }
            return null;
          }
        }),
        t.array.extend({
          hash: function(e) {
            var t = {},
              n = e && e.length,
              r,
              i;
            for (r = 0, i = this.length; r < i; r++)
              t[this[r]] = n && n > r ? e[r] : !0;
            return t;
          }
        }),
        t.array.extend({
          lastIndexOf: function(e, n) {
            t.check(".+(,number)?", "baidu.array.lastIndexOf");
            var r = this.length;
            (!(n |= 0) || n >= r) && (n = r - 1), n < 0 && (n += r);
            for (; n >= 0; n--) if (n in this && this[n] === e) return n;
            return -1;
          }
        }),
        t.array.extend({
          map: function(e, n) {
            t.check("function(,.+)?", "baidu.array.map");
            var r = this.length,
              i = t.array([]);
            for (var s = 0; s < r; s++)
              i[s] = e.call(n || this, this[s], s, this);
            return i;
          }
        }),
        t.array.extend({
          remove: function(e) {
            var t = this.length;
            while (t--) this[t] === e && this.splice(t, 1);
            return this;
          }
        }),
        t.array.extend({
          removeAt: function(e) {
            return (
              t.check("number", "baidu.array.removeAt"), this.splice(e, 1)[0]
            );
          }
        }),
        (t.base = t.base || { blank: function() {} }),
        (t.base.Class = (function() {
          var e = (t._global_ = window[t.guid])._instances;
          return (
            e || (e = t._global_._instances = {}),
            function() {
              (this.guid = t.id()), this._decontrol_ || (e[this.guid] = this);
            }
          );
        })()),
        t.extend(t.base.Class.prototype, {
          toString: (t.base.Class.prototype.toString = function() {
            return "[object " + (this._type_ || "Object") + "]";
          }),
          dispose: function() {
            delete t._global_._instances[this.guid];
            if (this._listeners_)
              for (var e in this._listeners_)
                (this._listeners_[e].length = 0), delete this._listeners_[e];
            for (var n in this)
              t.isFunction(this[n]) ? (this[n] = t.base.blank) : delete this[n];
            this.disposed = !0;
          },
          fire: function(e, n) {
            t.isString(e) && (e = new t.base.Event(e));
            var r,
              i,
              s,
              o,
              u = this._listeners_,
              a = e.type,
              f = [e].concat(Array.prototype.slice.call(arguments, 1));
            !u && (u = this._listeners_ = {}),
              t.extend(e, n || {}),
              (e.target = e.target || this),
              (e.currentTarget = this),
              a.indexOf("on") && (a = "on" + a),
              t.isFunction(this[a]) && this[a].apply(this, f),
              (r = this._options) && t.isFunction(r[a]) && r[a].apply(this, f);
            if (t.isArray((s = u[a])))
              for (r = s.length - 1; r > -1; r--)
                (o = s[r]),
                  o && o.handler.apply(this, f),
                  o && o.once && s.splice(r, 1);
            return e.returnValue;
          },
          on: function(e, n, r) {
            if (!t.isFunction(n)) return this;
            var i,
              s = this._listeners_;
            return (
              !s && (s = this._listeners_ = {}),
              e.indexOf("on") && (e = "on" + e),
              !t.isArray((i = s[e])) && (i = s[e] = []),
              s[e].unshift({ handler: n, once: !!r }),
              this
            );
          },
          once: function(e, t) {
            return this.on(e, t, !0);
          },
          one: function(e, t) {
            return this.on(e, t, !0);
          },
          off: function(e, t) {
            var n,
              r,
              i = this._listeners_;
            if (!i) return this;
            if (typeof e == "undefined") {
              for (n in i) delete i[n];
              return this;
            }
            e.indexOf("on") && (e = "on" + e);
            if (typeof t == "undefined") delete i[e];
            else if ((r = i[e]))
              for (n = r.length - 1; n >= 0; n--)
                r[n].handler === t && r.splice(n, 1);
            return this;
          }
        }),
        (t.base.Class.prototype.addEventListener = t.base.Class.prototype.on),
        (t.base.Class.prototype.removeEventListener = t.base.Class.prototype.un =
          t.base.Class.prototype.off),
        (t.base.Class.prototype.dispatchEvent = t.base.Class.prototype.fire),
        (window.baiduInstance = function(e) {
          return window[t.guid]._instances[e];
        }),
        (t.base.Event = function(e, t) {
          (this.type = e),
            (this.returnValue = !0),
            (this.target = t || null),
            (this.currentTarget = null),
            (this.preventDefault = function() {
              this.returnValue = !1;
            });
        }),
        (t.base.inherits = function(e, t, n) {
          var r,
            i,
            s = e.prototype,
            o = new Function();
          (o.prototype = t.prototype), (i = e.prototype = new o());
          for (r in s) i[r] = s[r];
          return (
            (e.prototype.constructor = e),
            (e.superClass = t.prototype),
            typeof n == "string" && (i._type_ = n),
            (e.extend = function(t) {
              for (var n in t) i[n] = t[n];
              return e;
            }),
            e
          );
        }),
        (t.base.register = function(e, t, n) {
          (e._reg_ || (e._reg_ = [])).push(t);
          for (var r in n) e.prototype[r] = n[r];
        }),
        (t.cookie = t.cookie || {}),
        (t.cookie._isValidKey = function(e) {
          return new RegExp(
            '^[^\\x00-\\x20\\x7f\\(\\)<>@,;:\\\\\\"\\[\\]\\?=\\{\\}\\/\\u0080-\\uffff]+$'
          ).test(e);
        }),
        (t.cookie.getRaw = function(e) {
          if (t.cookie._isValidKey(e)) {
            var n = new RegExp("(^| )" + e + "=([^;]*)(;|$)"),
              r = n.exec(document.cookie);
            if (r) return r[2] || null;
          }
          return null;
        }),
        (t.cookie.get = function(e) {
          var n = t.cookie.getRaw(e);
          return "string" == typeof n ? ((n = decodeURIComponent(n)), n) : null;
        }),
        (t.cookie.setRaw = function(e, n, r) {
          if (!t.cookie._isValidKey(e)) return;
          r = r || {};
          var i = r.expires;
          "number" == typeof r.expires &&
            ((i = new Date()), i.setTime(i.getTime() + r.expires)),
            (document.cookie =
              e +
              "=" +
              n +
              (r.path ? "; path=" + r.path : "") +
              (i ? "; expires=" + i.toGMTString() : "") +
              (r.domain ? "; domain=" + r.domain : "") +
              (r.secure ? "; secure" : ""));
        }),
        (t.cookie.remove = function(e, n) {
          (n = n || {}), (n.expires = new Date(0)), t.cookie.setRaw(e, "", n);
        }),
        (t.cookie.set = function(e, n, r) {
          t.cookie.setRaw(e, encodeURIComponent(n), r);
        }),
        (t.createClass = function(e, n, r) {
          (e = t.isFunction(e) ? e : function() {}),
            (r = typeof n == "object" ? n : r || {});
          var i = function() {
            var t = this;
            r.decontrolled && (t._decontrol_ = !0),
              i.superClass.apply(t, arguments);
            for (var n in i.options) t[n] = i.options[n];
            e.apply(t, arguments);
            for (var n = 0, s = i._reg_; s && n < s.length; n++)
              s[n].apply(t, arguments);
          };
          return (
            t.extend(i, {
              superClass: r.superClass || t.base.Class,
              inherits: function(n) {
                if (typeof n != "function") return i;
                var r = function() {};
                r.prototype = (i.superClass = n).prototype;
                var s = (i.prototype = new r());
                return (
                  t.extend(i.prototype, e.prototype), (s.constructor = e), i
                );
              },
              register: function(e, n) {
                return (
                  (i._reg_ || (i._reg_ = [])).push(e),
                  n && t.extend(i.prototype, n),
                  i
                );
              },
              extend: function(e) {
                return t.extend(i.prototype, e), i;
              }
            }),
            (n = t.isString(n) ? n : r.className || r.type),
            t.isString(n) && (e.prototype._type_ = n),
            t.isFunction(i.superClass) && i.inherits(i.superClass),
            i
          );
        }),
        (t.createSingle = function(e, n) {
          var r = new t.base.Class();
          return t.isString(n) && (r._type_ = n), t.extend(r, e);
        }),
        (t.date = t.date || {}),
        t.createChain("number", function(e) {
          var n = parseFloat(e),
            r = isNaN(n) ? n : e,
            i = typeof r == "number" ? Number : String,
            s = i.prototype;
          return (
            (r = new i(r)),
            t.forEach(t.number.$Number.prototype, function(e, t) {
              s[t] || (r[t] = e);
            }),
            r
          );
        }),
        t.number.extend({
          pad: function(e) {
            var t = this,
              n = "",
              r = t < 0,
              i = String(Math.abs(t));
            return (
              i.length < e && (n = new Array(e - i.length + 1).join("0")),
              (r ? "-" : "") + n + i
            );
          }
        }),
        (t.date.format = function(e, n) {
          function r(e, t) {
            n = n.replace(e, t);
          }
          if ("string" != typeof n) return e.toString();
          var i = t.number.pad,
            s = e.getFullYear(),
            o = e.getMonth() + 1,
            u = e.getDate(),
            a = e.getHours(),
            f = e.getMinutes(),
            l = e.getSeconds();
          return (
            r(/yyyy/g, i(s, 4)),
            r(/yy/g, i(parseInt(s.toString().slice(2), 10), 2)),
            r(/MM/g, i(o, 2)),
            r(/M/g, o),
            r(/dd/g, i(u, 2)),
            r(/d/g, u),
            r(/HH/g, i(a, 2)),
            r(/H/g, a),
            r(/hh/g, i(a % 12, 2)),
            r(/h/g, a % 12),
            r(/mm/g, i(f, 2)),
            r(/m/g, f),
            r(/ss/g, i(l, 2)),
            r(/s/g, l),
            n
          );
        }),
        (t.date.parse = function(e) {
          var t = new RegExp("^\\d+(\\-|\\/)\\d+(\\-|\\/)\\d+$");
          if ("string" == typeof e) {
            if (t.test(e) || isNaN(Date.parse(e))) {
              var n = e.split(/ |T/),
                r = n.length > 1 ? n[1].split(/[^\d]/) : [0, 0, 0],
                i = n[0].split(/[^\d]/);
              return new Date(
                i[0] - 0,
                i[1] - 1,
                i[2] - 0,
                r[0] - 0,
                r[1] - 0,
                r[2] - 0
              );
            }
            return new Date(e);
          }
          return new Date();
        }),
        t.dom.extend({
          pushStack: function(e) {
            var n = t.dom();
            return (
              t.merge(n, e),
              (n.prevObject = this),
              (n.context = this.context),
              n
            );
          }
        }),
        (t.dom.createElements = (function() {
          function i(e, t) {
            var n = e.getElementsByTagName("SCRIPT"),
              r,
              i,
              s;
            for (r = n.length - 1; r >= 0; r--)
              (s = n[r]),
                (i = t.createElement("SCRIPT")),
                s.id && (i.id = s.id),
                s.src && (i.src = s.src),
                s.type && (i.type = s.type),
                (i[s.text ? "text" : "textContent"] = s.text || s.textContent),
                s.parentNode.replaceChild(i, s);
          }
          var e = /<(\w+)/i,
            n = /<|&#?\w+;/,
            r = {
              area: [1, "<map>", "</map>"],
              col: [
                2,
                "<table><tbody></tbody><colgroup>",
                "</colgroup></table>"
              ],
              legend: [1, "<fieldset>", "</fieldset>"],
              option: [1, "<select multiple='multiple'>", "</select>"],
              td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
              thead: [1, "<table>", "</table>"],
              tr: [2, "<table><tbody>", "</tbody></table>"],
              _default: [0, "", ""]
            };
          return (
            (r.optgroup = r.option),
            (r.tbody = r.tfoot = r.colgroup = r.caption = r.thead),
            (r.th = r.td),
            function(s, o) {
              t.isNumber(s) && (s = s.toString()), (o = o || document);
              var u,
                a,
                f,
                l = s,
                c = l.length,
                h = o.createElement("div"),
                p = o.createDocumentFragment(),
                d = [];
              if (t.isString(l))
                if (!n.test(l)) d.push(o.createTextNode(l));
                else {
                  (u = r[l.match(e)[1].toLowerCase()] || r._default),
                    (h.innerHTML = "<i>mz</i>" + u[1] + l + u[2]),
                    h.removeChild(h.firstChild),
                    i(h, o),
                    (a = u[0]),
                    (f = h);
                  while (a--) f = f.firstChild;
                  t.merge(d, f.childNodes),
                    t.forEach(d, function(e) {
                      p.appendChild(e);
                    }),
                    (h = f = null);
                }
              return (h = null), d;
            }
          );
        })()),
        t.dom.extend({
          add: function(e, n) {
            var r = t.array(this.get());
            switch (t.type(e)) {
              case "HTMLElement":
                r.push(e);
                break;
              case "$DOM":
              case "array":
                t.merge(r, e);
                break;
              case "string":
                t.merge(r, t.dom(e, n));
                break;
              default:
                typeof e == "object" && e.length && t.merge(r, e);
            }
            return this.pushStack(r.unique());
          }
        }),
        t.dom.extend({
          addClass: function(e) {
            if (!arguments.length) return this;
            var n = typeof e,
              r = " ";
            if (n == "string") {
              e = t.string.trim(e);
              var i = e.split(" ");
              t.forEach(this, function(e, t) {
                var n = e.className;
                for (var s = 0; s < i.length; s++)
                  ~(r + n + r).indexOf(r + i[s] + r) || (n += " " + i[s]);
                e.className = n.replace(/^\s+/g, "");
              });
            } else
              n == "function" &&
                t.forEach(this, function(n, r) {
                  t.dom(n).addClass(e.call(n, r, n.className));
                });
            return this;
          }
        }),
        t.dom.extend({
          getDocument: function() {
            if (this.size() <= 0) return undefined;
            var e = this[0];
            return e.nodeType == 9 ? e : e.ownerDocument || e.document;
          }
        }),
        (t._util_.cleanData = function(e) {
          var n;
          for (var r = 0, i; (i = e[r]); r++) {
            n = t.id(i, "get");
            if (!n) continue;
            t._util_.eventBase.queue.remove(i), t.id(i, "remove");
          }
        }),
        t.dom.extend({
          empty: function() {
            for (var e = 0, n; (n = this[e]); e++) {
              n.nodeType === 1 &&
                t._util_.cleanData(n.getElementsByTagName("*"));
              while (n.firstChild) n.removeChild(n.firstChild);
            }
            return this;
          }
        }),
        t.dom.extend({
          append: function() {
            return (
              t.check(
                "^(?:string|function|HTMLElement|\\$DOM)(?:,(?:string|array|HTMLElement|\\$DOM))*$",
                "baidu.dom.append"
              ),
              t._util_.smartInsert(this, arguments, function(e) {
                this.nodeType === 1 && this.appendChild(e);
              }),
              this
            );
          }
        }),
        t.dom.extend({
          html: function(e) {
            var n = t.dom,
              r = t._util_,
              i = this,
              s = !1,
              o = !!r.support.dom.div.getElementsByTagName("link").length,
              u = r.support.dom.div.firstChild.nodeType === 3,
              a;
            if (!this.size())
              switch (typeof e) {
                case "undefined":
                  return undefined;
                default:
                  return i;
              }
            var f =
                "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
              l = /<(?:script|style|link)/i,
              c = new RegExp("<(?:" + f + ")[\\s/>]", "i"),
              h = /^\s+/,
              p = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
              d = /<([\w:]+)/,
              v = {
                option: [1, "<select multiple='multiple'>", "</select>"],
                legend: [1, "<fieldset>", "</fieldset>"],
                thead: [1, "<table>", "</table>"],
                tr: [2, "<table><tbody>", "</tbody></table>"],
                td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
                col: [
                  2,
                  "<table><tbody></tbody><colgroup>",
                  "</colgroup></table>"
                ],
                area: [1, "<map>", "</map>"],
                _default: [0, "", ""]
              };
            return (
              (v.optgroup = v.option),
              (v.tbody = v.tfoot = v.colgroup = v.caption = v.thead),
              (v.th = v.td),
              o || (v._default = [1, "X<div>", "</div>"]),
              t.forEach(i, function(t, r) {
                if (a) return;
                var f = n(t);
                switch (typeof e) {
                  case "undefined":
                    a = t.nodeType === 1 ? t.innerHTML : undefined;
                    return;
                  case "number":
                    e = String(e);
                  case "string":
                    s = !0;
                    if (
                      !l.test(e) &&
                      (o || !c.test(e)) &&
                      (u || !h.test(e)) &&
                      !v[(d.exec(e) || ["", ""])[1].toLowerCase()]
                    ) {
                      e = e.replace(p, "<$1></$2>");
                      try {
                        t.nodeType === 1 && (f.empty(), (t.innerHTML = e)),
                          (t = 0);
                      } catch (m) {}
                    }
                    t && i.empty().append(e);
                    break;
                  case "function":
                    (s = !0), f.html(e.call(t, r, f.html()));
                }
              }),
              s ? i : a
            );
          }
        }),
        (t._util_.smartInsert = function(e, n, r) {
          if (n.length <= 0 || e.size() <= 0) return;
          if (t.type(n[0]) === "function") {
            var i = n[0],
              s;
            return t.forEach(e, function(e, o) {
              (s = t.dom(e)),
                (n[0] = i.call(e, o, s.html())),
                t._util_.smartInsert(s, n, r);
            });
          }
          var o = e.getDocument() || document,
            u = o.createDocumentFragment(),
            a = e.length - 1,
            f;
          for (var l = 0, c; (c = n[l]); l++)
            c.nodeType
              ? u.appendChild(c)
              : t.forEach(
                  ~"string|number".indexOf(t.type(c))
                    ? t.dom.createElements(c, o)
                    : c,
                  function(e) {
                    u.appendChild(e);
                  }
                );
          if (!(f = u.firstChild)) return;
          t.forEach(e, function(e, t) {
            r.call(
              e.nodeName.toLowerCase() === "table" &&
                f.nodeName.toLowerCase() === "tr"
                ? e.tBodies[0] ||
                    e.appendChild(e.ownerDocument.createElement("tbody"))
                : e,
              t < a ? u.cloneNode(!0) : u
            );
          });
        }),
        t.dom.extend({
          after: function() {
            return (
              t.check(
                "^(?:string|function|HTMLElement|\\$DOM)(?:,(?:string|array|HTMLElement|\\$DOM))*$",
                "baidu.dom.after"
              ),
              t._util_.smartInsert(this, arguments, function(e) {
                this.parentNode &&
                  this.parentNode.insertBefore(e, this.nextSibling);
              }),
              this
            );
          }
        }),
        (t.makeArray = function(e, n) {
          var r = n || [];
          return e
            ? (e.length == null || ~"string|function|regexp".indexOf(t.type(e))
                ? [].push.call(r, e)
                : t.merge(r, e),
              r)
            : r;
        }),
        t.dom.extend({
          map: function(e) {
            t.check("function", "baidu.dom.map");
            var n = [],
              r = 0;
            return (
              t.forEach(this, function(t, s) {
                n[r++] = e.call(t, s, t, t);
              }),
              this.pushStack(n)
            );
          }
        }),
        (t._util_.isXML = function(e) {
          var t = (e ? e.ownerDocument || e : 0).documentElement;
          return t ? t.nodeName !== "HTML" : !1;
        }),
        t.dom.extend({
          clone: (function() {
            function u(e) {
              return e.getElementsByTagName
                ? e.getElementsByTagName("*")
                : e.querySelectorAll
                ? e.querySelectorAll("*")
                : [];
            }
            function a(e, n) {
              n.clearAttributes && n.clearAttributes(),
                n.mergeAttributes && n.mergeAttributes(e);
              switch (n.nodeName.toLowerCase()) {
                case "object":
                  n.outerHTML = e.outerHTML;
                  break;
                case "textarea":
                case "input":
                  ~"checked|radio".indexOf(e.type) &&
                    (e.checked && (n.defaultChecked = n.checked = e.checked),
                    n.value !== e.value && (n.value = e.value)),
                    (n.defaultValue = e.defaultValue);
                  break;
                case "option":
                  n.selected = e.defaultSelected;
                  break;
                case "script":
                  n.text !== e.text && (n.text = e.text);
              }
              n[t.key] && n.removeAttribute(t.key);
            }
            function f(e, i) {
              if (i.nodeType !== 1 || !t.id(e, "get")) return;
              var s = r.get(e);
              for (var o in s)
                for (var u = 0, a; (a = s[o][u]); u++)
                  n.add(i, o, a.orig, null, null, a.one);
            }
            function l(e, n, r) {
              var i = e.cloneNode(!0),
                l,
                c,
                h;
              if (
                (!o || !s) &&
                (e.nodeType === 1 || e.nodeType === 11) &&
                !t._util_.isXML(e)
              ) {
                a(e, i), (l = u(e)), (c = u(i)), (h = l.length);
                for (var p = 0; p < h; p++) c[p] && a(l[p], c[p]);
              }
              if (n) {
                f(e, i);
                if (r) {
                  (l = u(e)), (c = u(i)), (h = l.length);
                  for (var p = 0; p < h; p++) f(l[p], c[p]);
                }
              }
              return i;
            }
            var e = t._util_,
              n = e.eventBase.core,
              r = e.eventBase.queue,
              i = e.support.dom.div,
              s = e.support.dom.input.cloneNode(!0).checked,
              o = !0;
            return (
              !i.addEventListener &&
                i.attachEvent &&
                i.fireEvent &&
                (i.attachEvent("onclick", function() {
                  o = !1;
                }),
                i.cloneNode(!0).fireEvent("onclick")),
              function(e, t) {
                return (
                  (e = !!e),
                  (t = !!t),
                  this.map(function() {
                    return l(this, e, t);
                  })
                );
              }
            );
          })()
        }),
        (t._util_.contains = document.compareDocumentPosition
          ? function(e, t) {
              return !!(e.compareDocumentPosition(t) & 16);
            }
          : function(e, t) {
              if (e === t) return !1;
              if (e.contains && t.contains) return e.contains(t);
              while ((t = t.parentNode)) if (t === e) return !0;
              return !1;
            }),
        t.dom.extend({
          contains: function(e) {
            var n = this[0];
            return (e = t.dom(e)[0]), !n || !e ? !1 : t._util_.contains(n, e);
          }
        }),
        (t._util_.smartInsertTo = function(e, n, r, i) {
          var s = t.dom(n),
            o = s[0],
            u;
          if (i && o && (!o.parentNode || o.parentNode.nodeType === 11))
            (i = i === "before"),
              (u = t.merge(i ? e : s, i ? s : e)),
              e !== u && ((e.length = 0), t.merge(e, u));
          else
            for (var a = 0, f; (f = s[a]); a++)
              t._util_.smartInsert(t.dom(f), a > 0 ? e.clone(!0, !0) : e, r);
        }),
        t.dom.extend({
          appendTo: function(e) {
            var n = [],
              r = n.push;
            return (
              t.check("^(?:string|HTMLElement|\\$DOM)$", "baidu.dom.appendTo"),
              t._util_.smartInsertTo(this, e, function(e) {
                r.apply(n, t.makeArray(e.childNodes)), this.appendChild(e);
              }),
              this.pushStack(n)
            );
          }
        }),
        (t._util_.access = function(e, n, r, i, s) {
          if (e.size() <= 0) return e;
          switch (t.type(n)) {
            case "string":
              if (r === undefined) return i.call(e, e[0], n);
              e.each(function(o, u) {
                i.call(
                  e,
                  u,
                  n,
                  t.type(r) === "function" ? r.call(u, o, i.call(e, u, n)) : r,
                  s
                );
              });
              break;
            case "object":
              for (var o in n) t._util_.access(e, o, n[o], i, r);
          }
          return e;
        }),
        (t._util_.nodeName = function(e, t) {
          return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
        }),
        (t._util_.propFixer = {
          tabindex: "tabIndex",
          readonly: "readOnly",
          for: "htmlFor",
          class: "className",
          classname: "className",
          maxlength: "maxLength",
          cellspacing: "cellSpacing",
          cellpadding: "cellPadding",
          rowspan: "rowSpan",
          colspan: "colSpan",
          usemap: "useMap",
          frameborder: "frameBorder",
          contenteditable: "contentEditable",
          rboolean: /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i
        }),
        !document.createElement("form").enctype &&
          (t._util_.propFixer.enctype = "encoding"),
        (t._util_.prop = (function() {
          var e = /^(?:button|input|object|select|textarea)$/i,
            n = /^a(?:rea|)$/i,
            r = document.createElement("select"),
            i = r.appendChild(document.createElement("option")),
            s = {
              tabIndex: {
                get: function(t) {
                  var r = t.getAttributeNode("tabindex");
                  return r && r.specified
                    ? parseInt(r.value, 10)
                    : e.test(t.nodeName) || (n.test(t.nodeName) && t.href)
                    ? 0
                    : undefined;
                }
              }
            };
          return (
            !i.selected &&
              (s.selected = {
                get: function(e) {
                  var t = e.parentNode;
                  return (
                    t &&
                      (t.selectedIndex,
                      t.parentNode && t.parentNode.selectedIndex),
                    null
                  );
                }
              }),
            (r = i = null),
            function(e, n, r) {
              var i = e.nodeType,
                o,
                u;
              if (!e || ~"238".indexOf(i)) return;
              if (i !== 1 || !t._util_.isXML(e))
                (n = t._util_.propFixer[n] || n), (o = s[n] || {});
              return r !== undefined
                ? o.set && (u = o.set(e, n, r)) !== undefined
                  ? u
                  : (e[n] = r)
                : o.get && (u = o.get(e, n)) !== null
                ? u
                : e[n];
            }
          );
        })()),
        (t._util_.support.getSetAttribute =
          t._util_.support.dom.div.className !== "t"),
        (t._util_.nodeHook = (function() {
          if (t._util_.support.getSetAttribute) return;
          var e = {};
          return (
            (e.name = e.id = e.coords = !0),
            {
              get: function(t, n) {
                var r = t.getAttributeNode(n);
                return r && (e[n] ? r.value !== "" : r.specified)
                  ? r.value
                  : undefined;
              },
              set: function(e, t, n) {
                var r = e.getAttributeNode(t);
                return (
                  r ||
                    ((r = document.createAttribute(t)), e.setAttributeNode(r)),
                  (r.value = n + "")
                );
              }
            }
          );
        })()),
        (t._util_.removeAttr = (function() {
          var e = t._util_.propFixer,
            n = /\s+/,
            r = t._util_.support.getSetAttribute;
          return function(i, s) {
            if (!s || i.nodeType !== 1) return;
            var o = s.split(n),
              u,
              a;
            for (var f = 0, l; (l = o[f]); f++)
              (u = e[l] || l),
                (a = e.rboolean.test(l)),
                !a && t._util_.attr(i, l, ""),
                i.removeAttribute(r ? l : u),
                a && u in i && (i[u] = !1);
          };
        })()),
        (t._util_.attr = (function() {
          var e = t._util_,
            n = /^(?:button|input)$/i,
            r = e.support.dom,
            i = r.input.value === "t",
            s = r.a.getAttribute("href") === "/a",
            o = /top/.test(r.a.getAttribute("style")),
            u = e.nodeHook,
            a = { className: "class" },
            f = {
              get: function(t, n) {
                var r = e.prop(t, n),
                  i;
                return r === !0 ||
                  (typeof r != "boolean" &&
                    (i = t.getAttributeNode(n)) &&
                    i.nodeValue !== !1)
                  ? n.toLowerCase()
                  : undefined;
              },
              set: function(t, n, r) {
                if (r === !1) e.removeAttr(t, n);
                else {
                  var i = e.propFixer[n] || n;
                  i in t && (t[i] = !0), t.setAttribute(n, n.toLowerCase());
                }
                return n;
              }
            },
            l = {
              type: {
                set: function(t, r, s) {
                  if (n.test(t.nodeName) && t.parentNode) return s;
                  if (!i && s === "radio" && e.nodeName(t, "input")) {
                    var o = t.value;
                    return t.setAttribute("type", s), o && (t.value = o), s;
                  }
                }
              },
              value: {
                get: function(t, n) {
                  return u && e.nodeName(t, "button")
                    ? u.get(t, n)
                    : n in t
                    ? t.value
                    : null;
                },
                set: function(t, n, r) {
                  if (u && e.nodeName(t, "button")) return u.set(t, n, r);
                  t.value = r;
                }
              }
            };
          return (
            e.support.getSetAttribute ||
              (t.forEach(["width", "height"], function(e) {
                l[e] = {
                  set: function(e, t, n) {
                    if (n === "") return e.setAttribute(t, "auto"), n;
                  }
                };
              }),
              (l.contenteditable = {
                get: u.get,
                set: function(e, t, n) {
                  n === "" && (n = !1), u.set(e, t, n);
                }
              })),
            s ||
              t.forEach(["href", "src", "width", "height"], function(e) {
                l[e] = {
                  get: function(e, t) {
                    var n = e.getAttribute(t, 2);
                    return n === null ? undefined : n;
                  }
                };
              }),
            o ||
              (l.style = {
                get: function(e) {
                  return e.style.cssText.toLowerCase() || undefined;
                },
                set: function(e, t, n) {
                  return (e.style.cssText = n + "");
                }
              }),
            function(n, r, i, s) {
              var o = n.nodeType,
                c = o !== 1 || !e.isXML(n),
                h,
                p;
              if (!n || ~"238".indexOf(o)) return;
              if (s && t.dom.fn[r]) return t.dom(n)[r](i);
              c &&
                ((r = a[r] || r.toLowerCase()),
                (h = l[r] || (e.propFixer.rboolean.test(r) ? f : u)));
              if (i !== undefined) {
                if (i === null) {
                  e.removeAttr(n, r);
                  return;
                }
                return c && h && h.set && (p = h.set(n, r, i)) !== undefined
                  ? p
                  : (n.setAttribute(r, i + ""), i);
              }
              return c && h && h.get && (p = h.get(n, r)) !== null
                ? p
                : ((p = n.getAttribute(r)), p === null ? undefined : p);
            }
          );
        })()),
        t.dom.extend({
          attr: function(e, n) {
            return t._util_.access(this, e, n, function(e, n, r, i) {
              return t._util_.attr(e, n, r, i);
            });
          }
        }),
        t.dom.extend({
          before: function() {
            return (
              t.check(
                "^(?:string|function|HTMLElement|\\$DOM)(?:,(?:string|array|HTMLElement|\\$DOM))*$",
                "baidu.dom.before"
              ),
              t._util_.smartInsert(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this);
              }),
              this
            );
          }
        }),
        t.dom.extend({
          bind: function(e, t, n) {
            return this.on(e, undefined, t, n);
          }
        }),
        (t.dom.match = (function() {
          function r(e) {
            var t = [],
              n;
            while ((e = e.parentNode)) e.nodeType && t.push(e);
            for (var n = t.length - 1; n > -1; n--)
              if (t[n].nodeType == 1 || t[n].nodeType == 9) return t[n];
            return null;
          }
          var e = /^[\w\#\-\$\.\*]+$/,
            n = document.createElement("DIV");
          return (
            (n.id = "__tangram__"),
            function(e, n, i) {
              var s,
                o = t.array();
              switch (t.type(n)) {
                case "$DOM":
                  for (var u = e.length - 1; u > -1; u--)
                    for (var a = n.length - 1; a > -1; a--)
                      e[u] === n[a] && o.push(e[u]);
                  break;
                case "function":
                  t.forEach(e, function(e, t) {
                    n.call(e, t) && o.push(e);
                  });
                  break;
                case "HTMLElement":
                  t.forEach(e, function(e) {
                    e == n && o.push(e);
                  });
                  break;
                case "string":
                  var f = t.query(n, i || document);
                  t.forEach(e, function(e) {
                    if ((s = r(e))) {
                      var i = s.nodeType == 1 ? t.query(n, s) : f;
                      for (var u = 0, a = i.length; u < a; u++)
                        if (i[u] === e) {
                          o.push(e);
                          break;
                        }
                    }
                  }),
                    (o = o.unique());
                  break;
                default:
                  o = t.array(e).unique();
              }
              return o;
            }
          );
        })()),
        t.dom.extend({
          children: function(e) {
            var n = [];
            return (
              this.each(function() {
                t.forEach(this.children || this.childNodes, function(e) {
                  e.nodeType == 1 && n.push(e);
                });
              }),
              this.pushStack(t.dom.match(n, e))
            );
          }
        }),
        t.dom.extend({
          closest: function(e, n) {
            var r = t.array();
            return (
              t.forEach(this, function(i) {
                var s = [i];
                while ((i = i.parentNode)) i.nodeType && s.push(i);
                (s = t.dom.match(s, e, n)), s.length && r.push(s[0]);
              }),
              this.pushStack(r.unique())
            );
          }
        }),
        t.dom.extend({
          contents: function() {
            var e = [],
              n;
            for (var r = 0, i; (i = this[r]); r++)
              (n = i.nodeName),
                e.push.apply(
                  e,
                  t.makeArray(
                    n && n.toLowerCase() === "iframe"
                      ? i.contentDocument || i.contentWindow.document
                      : i.childNodes
                  )
                );
            return this.pushStack(e);
          }
        }),
        t.dom.extend({
          getComputedStyle: function(e) {
            if (!this[0].ownerDocument) return;
            var t = this[0].ownerDocument.defaultView,
              n = t && t.getComputedStyle && t.getComputedStyle(this[0], null),
              r = n ? n.getPropertyValue(e) || n[e] : "";
            return r || this[0].style[e];
          }
        }),
        t.dom.extend({
          getCurrentStyle: (function() {
            var e = document.documentElement.currentStyle
              ? function(e) {
                  return this[0].currentStyle
                    ? this[0].currentStyle[e]
                    : this[0].style[e];
                }
              : function(e) {
                  return this.getComputedStyle(e);
                };
            return function(t) {
              return e.call(this, t);
            };
          })()
        }),
        (t._util_.getWidthOrHeight = (function() {
          function i(e, t) {
            var n = {};
            for (var r in t) (n[r] = e.style[r]), (e.style[r] = t[r]);
            return n;
          }
          var e = {},
            n = {
              position: "absolute",
              visibility: "hidden",
              display: "block"
            },
            r = /^(none|table(?!-c[ea]).+)/;
          return (
            t.forEach(["Width", "Height"], function(s) {
              var o = { Width: ["Right", "Left"], Height: ["Top", "Bottom"] }[
                s
              ];
              e["get" + s] = function(e, u) {
                var a = t.dom(e),
                  f =
                    e.offsetWidth === 0 &&
                    r.test(a.getCurrentStyle("display")) &&
                    i(e, n),
                  l =
                    e["offset" + s] ||
                    parseInt(a.getCurrentStyle(s.toLowerCase())) ||
                    0,
                  c = "padding|border";
                return (
                  u &&
                    t.forEach(u.split("|"), function(e) {
                      ~c.indexOf(e)
                        ? (c = c.replace(new RegExp("\\|?" + e + "\\|?"), ""))
                        : ((l += parseFloat(a.getCurrentStyle(e + o[0])) || 0),
                          (l += parseFloat(a.getCurrentStyle(e + o[1])) || 0));
                    }),
                  c &&
                    t.forEach(c.split("|"), function(e) {
                      (l -=
                        parseFloat(
                          a.getCurrentStyle(
                            e + o[0] + (e === "border" ? "Width" : "")
                          )
                        ) || 0),
                        (l -=
                          parseFloat(
                            a.getCurrentStyle(
                              e + o[1] + (e === "border" ? "Width" : "")
                            )
                          ) || 0);
                    }),
                  f && i(e, f),
                  l
                );
              };
            }),
            function(t, n, r) {
              return e[n === "width" ? "getWidth" : "getHeight"](t, r);
            }
          );
        })()),
        (t._util_.setPositiveNumber = (function() {
          var e = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
            t = new RegExp("^(" + e + ")(.*)$", "i");
          return function(e, n, r) {
            var i = t.exec(n);
            return i ? Math.max(0, i[1] - (r || 0)) + (i[2] || "px") : n;
          };
        })()),
        (t._util_.style = t.extend(
          {
            set: function(e, t, n) {
              e.style[t] = n;
            }
          },
          document.documentElement.currentStyle
            ? {
                get: function(e, n) {
                  var r = t.dom(e).getCurrentStyle(n),
                    i;
                  return (
                    /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i.test(r) &&
                      ((i = e.style.left),
                      (e.style.left = n === "fontSize" ? "1em" : r),
                      (r = e.style.pixelLeft + "px"),
                      (e.style.left = i)),
                    r
                  );
                }
              }
            : {
                get: function(e, n) {
                  return t.dom(e).getCurrentStyle(n);
                }
              }
        )),
        (t._util_.cssHooks = (function() {
          function o(e, r, i) {
            t.type(i) === "string" && (i = t._util_.setPositiveNumber(e, i)),
              n.set(e, r, i);
          }
          var e = /alpha\s*\(\s*opacity\s*=\s*([^)]*)/i,
            n = t._util_.style,
            r = t._util_.support.dom.a,
            i = {
              fontWeight: { normal: 400, bold: 700, bolder: 700, lighter: 100 }
            },
            s = {
              opacity: {},
              width: {},
              height: {},
              fontWeight: {
                get: function(e, t) {
                  var r = n.get(e, t);
                  return i.fontWeight[r] || r;
                }
              }
            };
          return (
            t.extend(
              s.opacity,
              /^0.5/.test(r.style.opacity)
                ? {
                    get: function(e, n) {
                      var r = t.dom(e).getCurrentStyle(n);
                      return r === "" ? "1" : r;
                    }
                  }
                : {
                    get: function(t) {
                      return e.test((t.currentStyle || t.style).filter || "")
                        ? parseFloat(RegExp.$1) / 100 + ""
                        : "1";
                    },
                    set: function(t, n, r) {
                      var i = (t.currentStyle || t.style).filter || "",
                        s = r * 100;
                      (t.style.zoom = 1),
                        (t.style.filter = e.test(i)
                          ? i.replace(e, "Alpha(opacity=" + s)
                          : i +
                            " progid:dximagetransform.microsoft.Alpha(opacity=" +
                            s +
                            ")");
                    }
                  }
            ),
            t.forEach(["width", "height"], function(e) {
              s[e] = {
                get: function(n) {
                  return t._util_.getWidthOrHeight(n, e) + "px";
                },
                set: o
              };
            }),
            t.each({ padding: "", border: "Width" }, function(e, t) {
              s[e + t] = { set: o };
              var n = ["Top", "Right", "Bottom", "Left"],
                r = 0;
              for (; r < 4; r++) s[e + n[r] + t] = { set: o };
            }),
            s
          );
        })()),
        (t._util_.cssNumber = {
          columnCount: !0,
          fillOpacity: !0,
          fontWeight: !0,
          lineHeight: !0,
          opacity: !0,
          orphans: !0,
          widows: !0,
          zIndex: !0,
          zoom: !0
        }),
        t.string.extend({
          toCamelCase: function() {
            var e = this.valueOf();
            return e.indexOf("-") < 0 && e.indexOf("_") < 0
              ? e
              : e.replace(/[-_][^-_]/g, function(e) {
                  return e.charAt(1).toUpperCase();
                });
          }
        }),
        (t.dom.styleFixer = (function() {
          var e = t._util_.style,
            n = t._util_.cssHooks,
            r = t._util_.cssNumber,
            i = {
              float: t._util_.support.dom.a.style.cssFloat
                ? "cssFloat"
                : "styleFloat"
            };
          return function(s, o, u) {
            var a = t.string.toCamelCase(o),
              f = u === undefined ? "get" : "set",
              l,
              c;
            return (
              (a = i[a] || a),
              (l = t.type(u) === "number" && !r[a] ? u + "px" : u),
              (c = (n.hasOwnProperty(a) && n[a][f]) || e[f]),
              c(s, a, l)
            );
          };
        })()),
        t.dom.extend({
          css: function(e, n) {
            return (
              t.check(
                "^(?:(?:string(?:,(?:number|string|function))?)|object)$",
                "baidu.dom.css"
              ),
              t._util_.access(this, e, n, function(e, n, r) {
                var i = t.dom.styleFixer;
                return i
                  ? i(e, n, r)
                  : r === undefined
                  ? this.getCurrentStyle(n)
                  : (e.style[n] = r);
              })
            );
          }
        }),
        t.dom.extend({
          data: (function() {
            var e = t.key,
              n = t.global("_maps_HTMLElementData");
            return function(r, i) {
              t.forEach(this, function(n) {
                !n[e] && (n[e] = t.id());
              });
              if (t.isString(r)) {
                if (typeof i == "undefined") {
                  var s, o;
                  o = this[0] && (s = n[this[0][e]]) && s[r];
                  if (typeof o != "undefined") return o;
                  var u = this[0].getAttribute("data-" + r);
                  return ~String(u).indexOf("{")
                    ? Function("return " + u)()
                    : u;
                }
                t.forEach(this, function(t) {
                  var s = (n[t[e]] = n[t[e]] || {});
                  s[r] = i;
                });
              } else
                t.type(r) == "object" &&
                  t.forEach(this, function(i) {
                    var s = (n[i[e]] = n[i[e]] || {});
                    t.forEach(r, function(e, t) {
                      s[t] = r[t];
                    });
                  });
              return this;
            };
          })()
        }),
        (t.lang.Class = t.base.Class),
        (t.lang.Event = t.base.Event),
        t.dom.extend({
          delegate: function(e, t, n, r) {
            return (
              typeof n == "function" && ((r = n), (n = null)),
              this.on(t, e, n, r)
            );
          }
        }),
        t.dom.extend({
          filter: function(e) {
            return this.pushStack(t.dom.match(this, e));
          }
        }),
        t.dom.extend({
          remove: function(e, n) {
            arguments.length > 0 &&
              t.check("^string(?:,boolean)?$", "baidu.dom.remove");
            var r = e ? this.filter(e) : this;
            for (var i = 0, s; (s = r[i]); i++)
              !n &&
                s.nodeType === 1 &&
                (t._util_.cleanData(s.getElementsByTagName("*")),
                t._util_.cleanData([s])),
                s.parentNode && s.parentNode.removeChild(s);
            return this;
          }
        }),
        t.dom.extend({
          detach: function(e) {
            return (
              e && t.check("^string$", "baidu.dom.detach"), this.remove(e, !0)
            );
          }
        }),
        (t.object.extend = t.extend),
        (t.dom.getStyle = function(e, n) {
          return t.dom(t.dom.g(e)).css(n);
        }),
        (t.page = t.page || {}),
        (t.page.getScrollTop = function() {
          var e = document;
          return (
            window.pageYOffset ||
            e.documentElement.scrollTop ||
            e.body.scrollTop
          );
        }),
        (t.page.getScrollLeft = function() {
          var e = document;
          return (
            window.pageXOffset ||
            e.documentElement.scrollLeft ||
            e.body.scrollLeft
          );
        }),
        (function() {
          t.page.getMousePosition = function() {
            return {
              x: t.page.getScrollLeft() + e.x,
              y: t.page.getScrollTop() + e.y
            };
          };
          var e = { x: 0, y: 0 };
          t.event.on(document, "onmousemove", function(t) {
            (t = window.event || t), (e.x = t.clientX), (e.y = t.clientY);
          });
        })(),
        t.dom.extend({
          off: function(e, n, r) {
            var i = t._util_.eventBase.core,
              s = this;
            return (
              e
                ? typeof e == "string"
                  ? (typeof n == "function" && ((r = n), (n = null)),
                    (e = e.split(/[ ,]/)),
                    t.forEach(this, function(s) {
                      t.forEach(e, function(e) {
                        i.remove(s, e, r, n);
                      });
                    }))
                  : typeof e == "object" &&
                    t.forEach(e, function(e, t) {
                      s.off(t, n, e);
                    })
                : t.forEach(this, function(e) {
                    i.remove(e);
                  }),
              this
            );
          }
        }),
        (t.event.un = t.un = function(e, n, r) {
          return (
            typeof e == "string" && (e = t.dom.g(e)),
            t.dom(e).off(n.replace(/^\s*on/, ""), r),
            e
          );
        }),
        (t.event.preventDefault = function(e) {
          return new t.event(e).preventDefault();
        }),
        (function() {
          function h() {
            (e = !1),
              clearInterval(o),
              r.capture && n.releaseCapture
                ? n.releaseCapture()
                : r.capture &&
                  window.releaseEvents &&
                  window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP),
              (document.body.style.MozUserSelect = c);
            var i = t.dom(document);
            i.off("selectstart", d),
              r.autoStop && i.off("mouseup", h),
              t.isFunction(r.ondragend) &&
                r.ondragend(n, r, { left: f, top: l });
          }
          function p(c) {
            if (!e) {
              clearInterval(o);
              return;
            }
            var h = r.range || [],
              p = t.page.getMousePosition(),
              d = u + p.x - i,
              v = a + p.y - s;
            t.isObject(h) &&
              h.length == 4 &&
              ((d = Math.max(h[3], d)),
              (d = Math.min(h[1] - n.offsetWidth, d)),
              (v = Math.max(h[0], v)),
              (v = Math.min(h[2] - n.offsetHeight, v))),
              (n.style.left = d + "px"),
              (n.style.top = v + "px"),
              (f = d),
              (l = v),
              t.isFunction(r.ondrag) && r.ondrag(n, r, { left: f, top: l });
          }
          function d(e) {
            return t.event.preventDefault(e, !1);
          }
          var e = !1,
            n,
            r,
            i,
            s,
            o,
            u,
            a,
            f,
            l,
            c;
          t.dom.drag = function(v, m) {
            if (!(n = t.dom.g(v))) return !1;
            (r = t.object.extend(
              { autoStop: !0, capture: !0, interval: 16 },
              m
            )),
              (f = u = parseInt(t.dom.getStyle(n, "left")) || 0),
              (l = a = parseInt(t.dom.getStyle(n, "top")) || 0),
              (e = !0),
              setTimeout(function() {
                var e = t.page.getMousePosition();
                (i = r.mouseEvent
                  ? t.page.getScrollLeft() + r.mouseEvent.clientX
                  : e.x),
                  (s = r.mouseEvent
                    ? t.page.getScrollTop() + r.mouseEvent.clientY
                    : e.y),
                  clearInterval(o),
                  (o = setInterval(p, r.interval));
              }, 1);
            var g = t.dom(document);
            return (
              r.autoStop && g.on("mouseup", h),
              g.on("selectstart", d),
              r.capture && n.setCapture
                ? n.setCapture()
                : r.capture &&
                  window.captureEvents &&
                  window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP),
              (c = document.body.style.MozUserSelect),
              (document.body.style.MozUserSelect = "none"),
              t.isFunction(r.ondragstart) && r.ondragstart(n, r),
              {
                stop: h,
                dispose: h,
                update: function(e) {
                  t.object.extend(r, e);
                }
              }
            );
          };
        })(),
        (t.lang.isFunction = t.isFunction),
        t.dom.extend({
          end: function() {
            return this.prevObject || t.dom();
          }
        }),
        t.dom.extend({
          eq: function(e) {
            t.check("number", "baidu.dom.eq");
            var n = this.get(e);
            return this.pushStack(typeof n == "undefined" ? [] : [n]);
          }
        }),
        t.dom.extend({
          find: function(e) {
            var n = [],
              r,
              i = "__tangram__find__",
              s = [];
            switch (t.type(e)) {
              case "string":
                this.each(function() {
                  t.merge(s, t.query(e, this));
                });
                break;
              case "HTMLElement":
                (r = e.tagName + "#" + (e.id ? e.id : (e.id = i))),
                  this.each(function() {
                    t.query(r, this).length > 0 && n.push(e);
                  }),
                  e.id == i && (e.id = ""),
                  n.length > 0 && t.merge(s, n);
                break;
              case "$DOM":
                (n = e.get()),
                  this.each(function() {
                    t.forEach(t.query("*", this), function(e) {
                      for (var t = 0, r = n.length; t < r; t++)
                        e === n[t] && (s[s.length++] = n[t]);
                    });
                  });
            }
            return this.pushStack(s);
          }
        }),
        t.dom.extend({
          first: function() {
            return this.eq(0);
          }
        }),
        (t.dom.getAttr = function(e, n) {
          return t.dom(t.dom.g(e)).attr(n);
        }),
        t.dom.extend({
          getWindow: function() {
            var e = this.getDocument();
            return this.size() <= 0
              ? undefined
              : e.parentWindow || e.defaultView;
          }
        }),
        t.dom.extend({
          offsetParent: function() {
            return this.map(function() {
              var e = this.offsetParent || document.body,
                n = /^(?:body|html)$/i;
              while (
                e &&
                t.dom(e).getCurrentStyle("position") === "static" &&
                !n.test(e.nodeName)
              )
                e = e.offsetParent;
              return e;
            });
          }
        }),
        t.dom.extend({
          position: function() {
            if (this.size() <= 0) return 0;
            var e = /^(?:body|html)$/i,
              t = this.offset(),
              n = this.offsetParent(),
              r = e.test(n[0].nodeName) ? { left: 0, top: 0 } : n.offset();
            return (
              (t.left -= parseFloat(this.getCurrentStyle("marginLeft")) || 0),
              (t.top -= parseFloat(this.getCurrentStyle("marginTop")) || 0),
              (r.left += parseFloat(n.getCurrentStyle("borderLeftWidth")) || 0),
              (r.top += parseFloat(n.getCurrentStyle("borderTopWidth")) || 0),
              { left: t.left - r.left, top: t.top - r.top }
            );
          }
        }),
        t.dom.extend({
          offset: (function() {
            function e(e, n, r) {
              var i = (i = t.dom(e)),
                s = i.getCurrentStyle("position");
              s === "static" && (e.style.position = "relative");
              var o = i.offset(),
                u = i.getCurrentStyle("left"),
                a = i.getCurrentStyle("top"),
                f =
                  ~"absolute|fixed".indexOf(s) && ~("" + u + a).indexOf("auto"),
                l = f && i.position();
              (u = (l && l.left) || parseFloat(u) || 0),
                (a = (l && l.top) || parseFloat(a) || 0),
                t.type("options") === "function" && (n = n.call(e, r, o)),
                n.left != undefined &&
                  (e.style.left = n.left - o.left + u + "px"),
                n.top != undefined && (e.style.top = n.top - o.top + a + "px");
            }
            return function(n) {
              if (n) {
                t.check("^(?:object|function)$", "baidu.dom.offset");
                for (var r = 0, i; (i = this[r]); r++) e(i, n, r);
                return this;
              }
              var s = this[0],
                o = this.getDocument(),
                u = { left: 0, top: 0 },
                a,
                f;
              if (!o) return;
              return (
                (f = o.documentElement),
                t._util_.contains(f, s)
                  ? (typeof s.getBoundingClientRect != "undefined" &&
                      (u = s.getBoundingClientRect()),
                    (a = this.getWindow()),
                    {
                      left:
                        u.left +
                        (a.pageXOffset || f.scrollLeft) -
                        (f.clientLeft || 0),
                      top:
                        u.top +
                        (a.pageYOffset || f.scrollTop) -
                        (f.clientTop || 0)
                    })
                  : u
              );
            };
          })()
        }),
        t.dom.extend({
          has: function(e) {
            var n = [],
              r = t.dom(document.body);
            return (
              t.forEach(this, function(t) {
                (r[0] = t), r.find(e).length && n.push(t);
              }),
              t.dom(n)
            );
          }
        }),
        t.dom.extend({
          hasClass: function(e) {
            if (arguments.length <= 0 || typeof e == "function") return this;
            if (this.size() <= 0) return !1;
            e = e
              .replace(/^\s+/g, "")
              .replace(/\s+$/g, "")
              .replace(/\s+/g, " ");
            var n = e.split(" "),
              r;
            return (
              t.forEach(this, function(e) {
                var t = e.className;
                for (var i = 0; i < n.length; i++)
                  if (!~(" " + t + " ").indexOf(" " + n[i] + " ")) {
                    r = !1;
                    return;
                  }
                if (r !== !1) {
                  r = !0;
                  return;
                }
              }),
              r
            );
          }
        }),
        (t._util_.getWindowOrDocumentWidthOrHeight =
          t._util_.getWindowOrDocumentWidthOrHeight ||
          (function() {
            var e = { window: {}, document: {} };
            return (
              t.forEach(["Width", "Height"], function(n) {
                var r = "client" + n,
                  i = "offset" + n,
                  s = "scroll" + n;
                (e.window["get" + n] = function(e) {
                  var n = e.document,
                    i = n.documentElement[r];
                  return (
                    (t.browser.isStrict && i) || (n.body && n.body[r]) || i
                  );
                }),
                  (e.document["get" + n] = function(e) {
                    var t = e.documentElement;
                    return t[r] >= t[s]
                      ? t[r]
                      : Math.max(e.body[s], t[s], e.body[i], t[i]);
                  });
              }),
              function(t, n, r) {
                return e[n][r === "width" ? "getWidth" : "getHeight"](t);
              }
            );
          })()),
        t.dom.extend({
          height: function(e) {
            return t._util_.access(this, "height", e, function(e, n, r) {
              var i = r !== undefined,
                s = i && parseFloat(r),
                o =
                  e != null && e == e.window
                    ? "window"
                    : e.nodeType === 9
                    ? "document"
                    : !1;
              if ((i && s < 0) || isNaN(s)) return;
              return (
                i && /^(?:\d*\.)?\d+$/.test((r += "")) && (r += "px"),
                o
                  ? t._util_.getWindowOrDocumentWidthOrHeight(e, o, n)
                  : i
                  ? (e.style.height = r)
                  : t._util_.getWidthOrHeight(e, n)
              );
            });
          }
        }),
        (t._util_.isHidden = function(e) {
          return (
            t.dom(e).getCurrentStyle("display") === "none" ||
            !t._util_.contains(e.ownerDocument, e)
          );
        }),
        t.dom.extend({
          hide: function() {
            var e = [],
              n,
              r,
              i;
            return this.each(function(s, o) {
              if (!o.style) return;
              (n = t(o)),
                (e[s] = n.data("olddisplay")),
                (i = o.style.display),
                e[s] ||
                  ((r = t._util_.isHidden(o)),
                  ((i && i !== "none") || !r) &&
                    n.data("olddisplay", r ? i : n.getCurrentStyle("display"))),
                (o.style.display = "none");
            });
          }
        }),
        t.dom.extend({
          innerHeight: function() {
            if (this.size() <= 0) return 0;
            var e = this[0],
              n =
                e != null && e === e.window
                  ? "window"
                  : e.nodeType === 9
                  ? "document"
                  : !1;
            return n
              ? t._util_.getWindowOrDocumentWidthOrHeight(e, n, "height")
              : t._util_.getWidthOrHeight(e, "height", "padding");
          }
        }),
        t.dom.extend({
          innerWidth: function() {
            if (this.size() <= 0) return 0;
            var e = this[0],
              n =
                e != null && e === e.window
                  ? "window"
                  : e.nodeType === 9
                  ? "document"
                  : !1;
            return n
              ? t._util_.getWindowOrDocumentWidthOrHeight(e, n, "width")
              : t._util_.getWidthOrHeight(e, "width", "padding");
          }
        }),
        t.dom.extend({
          insertAfter: function(e) {
            var n = [],
              r = n.push;
            return (
              t.check(
                "^(?:string|HTMLElement|\\$DOM)$",
                "baidu.dom.insertAfter"
              ),
              t._util_.smartInsertTo(
                this,
                e,
                function(e) {
                  r.apply(n, t.makeArray(e.childNodes)),
                    this.parentNode.insertBefore(e, this.nextSibling);
                },
                "after"
              ),
              this.pushStack(n)
            );
          }
        }),
        t.dom.extend({
          insertBefore: function(e) {
            var n = [],
              r = n.push;
            return (
              t.check(
                "^(?:string|HTMLElement|\\$DOM)$",
                "baidu.dom.insertBefore"
              ),
              t._util_.smartInsertTo(
                this,
                e,
                function(e) {
                  r.apply(n, t.makeArray(e.childNodes)),
                    this.parentNode.insertBefore(e, this);
                },
                "before"
              ),
              this.pushStack(n)
            );
          }
        }),
        t.dom.extend({
          insertHTML: function(e, n) {
            var r,
              i,
              s = this[0];
            return (
              s.insertAdjacentHTML && !t.browser.opera
                ? s.insertAdjacentHTML(e, n)
                : ((r = s.ownerDocument.createRange()),
                  (e = e.toUpperCase()),
                  e == "AFTERBEGIN" || e == "BEFOREEND"
                    ? (r.selectNodeContents(s), r.collapse(e == "AFTERBEGIN"))
                    : ((i = e == "BEFOREBEGIN"),
                      r[i ? "setStartBefore" : "setEndAfter"](s),
                      r.collapse(i)),
                  r.insertNode(r.createContextualFragment(n))),
              s
            );
          }
        }),
        t.dom.extend({
          is: function(e) {
            return t.dom.match(this, e).length > 0;
          }
        }),
        t.dom.extend({
          last: function() {
            return this.eq(-1);
          }
        }),
        t.dom.extend({
          next: function(e) {
            var n = [];
            return (
              t.forEach(this, function(e) {
                while ((e = e.nextSibling) && e && e.nodeType != 1);
                e && (n[n.length++] = e);
              }),
              this.pushStack(e ? t.dom.match(n, e) : n)
            );
          }
        }),
        t.dom.extend({
          nextAll: function(e) {
            var n = [];
            return (
              t.forEach(this, function(e) {
                while ((e = e.nextSibling)) e && e.nodeType == 1 && n.push(e);
              }),
              this.pushStack(t.dom.match(n, e))
            );
          }
        }),
        t.dom.extend({
          nextUntil: function(e, n) {
            var r = t.array();
            return (
              t.forEach(this, function(n) {
                var i = t.array();
                while ((n = n.nextSibling)) n && n.nodeType == 1 && i.push(n);
                if (e && i.length) {
                  var s = t.dom.match(i, e);
                  s.length && (i = i.slice(0, i.indexOf(s[0])));
                }
                t.merge(r, i);
              }),
              this.pushStack(t.dom.match(r, n))
            );
          }
        }),
        t.dom.extend({
          not: function(e) {
            var n,
              r,
              i,
              s = this.get(),
              o = t.isArray(e) ? e : t.dom.match(this, e);
            for (n = s.length - 1; n > -1; n--)
              for (r = 0, i = o.length; r < i; r++)
                o[r] === s[n] && s.splice(n, 1);
            return this.pushStack(s);
          }
        }),
        t.dom.extend({
          one: function(e, t, n, r) {
            return this.on(e, t, n, r, 1);
          }
        }),
        t.dom.extend({
          outerHeight: function(e) {
            if (this.size() <= 0) return 0;
            var n = this[0],
              r =
                n != null && n === n.window
                  ? "window"
                  : n.nodeType === 9
                  ? "document"
                  : !1;
            return r
              ? t._util_.getWindowOrDocumentWidthOrHeight(n, r, "height")
              : t._util_.getWidthOrHeight(
                  n,
                  "height",
                  "padding|border" + (e ? "|margin" : "")
                );
          }
        }),
        t.dom.extend({
          outerWidth: function(e) {
            if (this.size() <= 0) return 0;
            var n = this[0],
              r =
                n != null && n === n.window
                  ? "window"
                  : n.nodeType === 9
                  ? "document"
                  : !1;
            return r
              ? t._util_.getWindowOrDocumentWidthOrHeight(n, r, "width")
              : t._util_.getWidthOrHeight(
                  n,
                  "width",
                  "padding|border" + (e ? "|margin" : "")
                );
          }
        }),
        t.dom.extend({
          parent: function(e) {
            var n = [];
            return (
              t.forEach(this, function(e) {
                (e = e.parentNode) && e.nodeType == 1 && n.push(e);
              }),
              this.pushStack(t.dom.match(n, e))
            );
          }
        }),
        t.dom.extend({
          parents: function(e) {
            var n = [];
            return (
              t.forEach(this, function(e) {
                var r = [];
                while ((e = e.parentNode) && e.nodeType == 1) r.push(e);
                t.merge(n, r);
              }),
              this.pushStack(t.dom.match(n, e))
            );
          }
        }),
        t.dom.extend({
          parentsUntil: function(e, n) {
            t.check("(string|HTMLElement)(,.+)?", "baidu.dom.parentsUntil");
            var r = [];
            return (
              t.forEach(this, function(n) {
                var i = t.array();
                while ((n = n.parentNode) && n.nodeType == 1) i.push(n);
                if (e && i.length) {
                  var s = t.dom.match(i, e);
                  s.length && (i = i.slice(0, i.indexOf(s[0])));
                }
                t.merge(r, i);
              }),
              this.pushStack(t.dom.match(r, n))
            );
          }
        }),
        t.dom.extend({
          prepend: function() {
            return (
              t.check(
                "^(?:string|function|HTMLElement|\\$DOM)(?:,(?:string|array|HTMLElement|\\$DOM))*$",
                "baidu.dom.prepend"
              ),
              t._util_.smartInsert(this, arguments, function(e) {
                this.nodeType === 1 && this.insertBefore(e, this.firstChild);
              }),
              this
            );
          }
        }),
        t.dom.extend({
          prependTo: function(e) {
            var n = [],
              r = n.push;
            return (
              t.check("^(?:string|HTMLElement|\\$DOM)$", "baidu.dom.prependTo"),
              t._util_.smartInsertTo(this, e, function(e) {
                r.apply(n, t.makeArray(e.childNodes)),
                  this.insertBefore(e, this.firstChild);
              }),
              this.pushStack(n)
            );
          }
        }),
        t.dom.extend({
          prev: function(e) {
            var n = [];
            return (
              t.forEach(this, function(e) {
                while ((e = e.previousSibling))
                  if (e.nodeType == 1) {
                    n.push(e);
                    break;
                  }
              }),
              this.pushStack(t.dom.match(n, e))
            );
          }
        }),
        t.dom.extend({
          prevAll: function(e) {
            var n = t.array();
            return (
              t.forEach(this, function(e) {
                var r = [];
                while ((e = e.previousSibling)) e.nodeType == 1 && r.push(e);
                t.merge(n, r.reverse());
              }),
              this.pushStack(
                typeof e == "string" ? t.dom.match(n, e) : n.unique()
              )
            );
          }
        }),
        t.dom.extend({
          prevUntil: function(e, n) {
            t.check("(string|HTMLElement)(,.+)?", "baidu.dom.prevUntil");
            var r = [];
            return (
              t.forEach(this, function(n) {
                var i = t.array();
                while ((n = n.previousSibling))
                  n && n.nodeType == 1 && i.push(n);
                if (e && i.length) {
                  var s = t.dom.match(i, e);
                  s.length && (i = i.slice(0, i.indexOf(s[0])));
                }
                t.merge(r, i);
              }),
              this.pushStack(t.dom.match(r, n))
            );
          }
        }),
        t.dom.extend({
          prop: function(e, n) {
            return t._util_.access(this, e, n, function(e, n, r) {
              return t._util_.prop(e, n, r);
            });
          }
        }),
        t.string.extend({
          escapeReg: function() {
            return this.replace(
              new RegExp("([.*+?^=!:${}()|[\\]/\\\\])", "g"),
              "\\$1"
            );
          }
        }),
        void (function(e, n) {
          function W(e, t, n, r) {
            var i,
              u,
              a,
              f,
              l = o++,
              c = 0,
              h = t.length;
            typeof n == "string" &&
              !d.test(n) &&
              ((n = n.toLowerCase()), (f = n));
            for (; c < h; c++) {
              i = t[c];
              if (i) {
                (u = !1), (i = i[e]);
                while (i) {
                  if (i[s] === l) {
                    u = t[i.sizset];
                    break;
                  }
                  (a = i.nodeType === 1),
                    a && !r && ((i[s] = l), (i.sizset = c));
                  if (f) {
                    if (i.nodeName.toLowerCase() === n) {
                      u = i;
                      break;
                    }
                  } else if (a)
                    if (typeof n != "string") {
                      if (i === n) {
                        u = !0;
                        break;
                      }
                    } else if (F(n, [i]).length > 0) {
                      u = i;
                      break;
                    }
                  i = i[e];
                }
                t[c] = u;
              }
            }
          }
          t.query = function(e, n, r) {
            return t.merge(r || [], t.sizzle(e, n));
          };
          var r = e.document,
            i = r.documentElement,
            s = "sizcache" + (Math.random() + "").replace(".", ""),
            o = 0,
            u = Object.prototype.toString,
            a = "undefined",
            f = !1,
            l = !0,
            c = /^#([\w\-]+$)|^(\w+$)|^\.([\w\-]+$)/,
            h = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
            p = /\\/g,
            d = /\W/,
            v = /^\w/,
            m = /\D/,
            g = /(-?)(\d*)(?:n([+\-]?\d*))?/,
            y = /^\+|\s*/g,
            b = /h\d/i,
            w = /input|select|textarea|button/i,
            E = /[\t\n\f\r]/g,
            S = "(?:[-\\w]|[^\\x00-\\xa0]|\\\\.)",
            x = {
              ID: new RegExp("#(" + S + "+)"),
              CLASS: new RegExp("\\.(" + S + "+)"),
              NAME: new RegExp("\\[name=['\"]*(" + S + "+)['\"]*\\]"),
              TAG: new RegExp("^(" + S.replace("[-", "[-\\*") + "+)"),
              ATTR: new RegExp(
                "\\[\\s*(" +
                  S +
                  "+)\\s*(?:(\\S?=)\\s*(?:(['\"])(.*?)\\3|(#?" +
                  S +
                  "*)|)|)\\s*\\]"
              ),
              PSEUDO: new RegExp(
                ":(" +
                  S +
                  "+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?"
              ),
              CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
              POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/
            },
            T = x.POS,
            N = (function() {
              var e,
                t = function(e, t) {
                  return "\\" + (t - 0 + 1);
                },
                n = {};
              for (e in x)
                (x[e] = new RegExp(
                  x[e].source + /(?![^\[]*\])(?![^\(]*\))/.source
                )),
                  (n[e] = new RegExp(
                    /(^(?:.|\r|\n)*?)/.source +
                      x[e].source.replace(/\\(\d+)/g, t)
                  ));
              return (x.globalPOS = T), n;
            })(),
            C = function(e) {
              var t = !1,
                n = r.createElement("div");
              try {
                t = e(n);
              } catch (i) {}
              return (n = null), t;
            },
            k = C(function(e) {
              var t = !0,
                n = "script" + new Date().getTime();
              return (
                (e.innerHTML = "<a name ='" + n + "'/>"),
                i.insertBefore(e, i.firstChild),
                r.getElementById(n) && (t = !1),
                i.removeChild(e),
                t
              );
            }),
            L = C(function(e) {
              return (
                e.appendChild(r.createComment("")),
                e.getElementsByTagName("*").length === 0
              );
            }),
            A = C(function(e) {
              return (
                (e.innerHTML = "<a href='#'></a>"),
                e.firstChild &&
                  typeof e.firstChild.getAttribute !== a &&
                  e.firstChild.getAttribute("href") === "#"
              );
            }),
            O = C(function(e) {
              return (
                (e.innerHTML =
                  "<div class='test e'></div><div class='test'></div>"),
                !e.getElementsByClassName ||
                e.getElementsByClassName("e").length === 0
                  ? !1
                  : ((e.lastChild.className = "e"),
                    e.getElementsByClassName("e").length !== 1)
              );
            });
          [0, 0].sort(function() {
            return (l = !1), 0;
          });
          var M = function(e, i, s) {
              (s = s || []), (i = i || r);
              var o,
                u,
                a,
                f = i.nodeType;
              if (f !== 1 && f !== 9) return [];
              if (!e || typeof e != "string") return s;
              e = t.string(e).trim();
              if (!e) return s;
              a = D(i);
              if (!a)
                if ((o = c.exec(e)))
                  if (o[1]) {
                    if (f === 9) {
                      u = i.getElementById(o[1]);
                      if (!u || !u.parentNode) return P([], s);
                      if (u.id === o[1]) return P([u], s);
                    } else if (
                      i.ownerDocument &&
                      (u = i.ownerDocument.getElementById(o[1])) &&
                      B(i, u) &&
                      u.id === o[1]
                    )
                      return P([u], s);
                  } else {
                    if (o[2])
                      return e === "body" && i.body
                        ? P([i.body], s)
                        : P(i.getElementsByTagName(e), s);
                    if (O && o[3] && i.getElementsByClassName)
                      return P(i.getElementsByClassName(o[3]), s);
                  }
              return _(e, i, s, n, a);
            },
            _ = function(e, t, n, r, i) {
              var s,
                o,
                a,
                f,
                l,
                c,
                p,
                d,
                v = t,
                m = !0,
                g = [],
                y = e;
              do {
                h.exec(""), (s = h.exec(y));
                if (s) {
                  (y = s[3]), g.push(s[1]);
                  if (s[2]) {
                    f = s[3];
                    break;
                  }
                }
              } while (s);
              if (g.length > 1 && T.exec(e))
                if (g.length === 2 && R.relative[g[0]])
                  o = X(g[0] + g[1], t, r, i);
                else {
                  o = R.relative[g[0]] ? [t] : M(g.shift(), t);
                  while (g.length)
                    (e = g.shift()),
                      R.relative[e] && (e += g.shift()),
                      (o = X(e, o, r, i));
                }
              else {
                !r &&
                  g.length > 1 &&
                  t.nodeType === 9 &&
                  !i &&
                  x.ID.test(g[0]) &&
                  !x.ID.test(g[g.length - 1]) &&
                  ((l = j(g.shift(), t, i)),
                  (t = l.expr ? F(l.expr, l.set)[0] : l.set[0]));
                if (t) {
                  (l = r
                    ? { expr: g.pop(), set: P(r) }
                    : j(
                        g.pop(),
                        (g.length >= 1 &&
                          (g[0] === "~" || g[0] === "+") &&
                          t.parentNode) ||
                          t,
                        i
                      )),
                    (o = l.expr ? F(l.expr, l.set) : l.set),
                    g.length > 0 ? (a = P(o)) : (m = !1);
                  while (g.length)
                    (c = g.pop()),
                      (p = c),
                      R.relative[c] ? (p = g.pop()) : (c = ""),
                      p == null && (p = t),
                      R.relative[c](a, p, i);
                } else a = g = [];
              }
              a || (a = o), a || I(c || e);
              if (u.call(a) === "[object Array]")
                if (!m) n.push.apply(n, a);
                else if (t && t.nodeType === 1)
                  for (d = 0; a[d] != null; d++)
                    a[d] &&
                      (a[d] === !0 || (a[d].nodeType === 1 && B(t, a[d]))) &&
                      n.push(o[d]);
                else
                  for (d = 0; a[d] != null; d++)
                    a[d] && a[d].nodeType === 1 && n.push(o[d]);
              else P(a, n);
              return f && (_(f, v, n, r, i), H(n)), n;
            },
            D = t._util_.isXML,
            P = t.makeArray,
            H = function(e) {
              if (U) {
                (f = l), e.sort(U);
                if (f)
                  for (var t = 1; t < e.length; t++)
                    e[t] === e[t - 1] && e.splice(t--, 1);
              }
              return e;
            },
            B = t._util_.contains,
            j = function(e, t, n) {
              var r, i, s, o, u, f;
              if (!e) return [];
              for (i = 0, s = R.order.length; i < s; i++) {
                u = R.order[i];
                if ((o = N[u].exec(e))) {
                  (f = o[1]), o.splice(1, 1);
                  if (f.substr(f.length - 1) !== "\\") {
                    (o[1] = (o[1] || "").replace(p, "")),
                      (r = R.find[u](o, t, n));
                    if (r != null) {
                      e = e.replace(x[u], "");
                      break;
                    }
                  }
                }
              }
              return (
                r ||
                  (r =
                    typeof t.getElementsByTagName !== a
                      ? t.getElementsByTagName("*")
                      : []),
                { set: r, expr: e }
              );
            },
            F = function(e, t, r, i) {
              var s,
                o,
                u,
                a,
                f,
                l,
                c,
                h,
                p,
                d = e,
                v = [],
                m = t,
                g = t && t[0] && D(t[0]);
              while (e && t.length) {
                for (u in R.filter)
                  if ((s = N[u].exec(e)) != null && s[2]) {
                    (l = R.filter[u]), (c = s[1]), (o = !1), s.splice(1, 1);
                    if (c.substr(c.length - 1) === "\\") continue;
                    m === v && (v = []);
                    if (R.preFilter[u]) {
                      s = R.preFilter[u](s, m, r, v, i, g);
                      if (!s) o = a = !0;
                      else if (s === !0) continue;
                    }
                    if (s)
                      for (h = 0; (f = m[h]) != null; h++)
                        f &&
                          ((a = l(f, s, h, m)),
                          (p = i ^ a),
                          r && a != null
                            ? p
                              ? (o = !0)
                              : (m[h] = !1)
                            : p && (v.push(f), (o = !0)));
                    if (a !== n) {
                      r || (m = v), (e = e.replace(x[u], ""));
                      if (!o) return [];
                      break;
                    }
                  }
                if (e === d) {
                  if (o != null) break;
                  I(e);
                }
                d = e;
              }
              return m;
            },
            I = function(e) {
              throw new Error(e);
            },
            q = function(e) {
              var t,
                n,
                r = e.nodeType,
                i = "";
              if (r) {
                if (r === 1 || r === 9 || r === 11) {
                  if (typeof e.textContent == "string") return e.textContent;
                  for (e = e.firstChild; e; e = e.nextSibling) i += q(e);
                } else if (r === 3 || r === 4) return e.nodeValue;
              } else
                for (t = 0; (n = e[t]); t++) n.nodeType !== 8 && (i += q(n));
              return i;
            },
            R = {
              match: x,
              leftMatch: N,
              order: ["ID", "NAME", "TAG"],
              attrMap: { class: "className", for: "htmlFor" },
              attrHandle: {
                href: A
                  ? function(e) {
                      return e.getAttribute("href");
                    }
                  : function(e) {
                      return e.getAttribute("href", 2);
                    },
                type: function(e) {
                  return e.getAttribute("type");
                }
              },
              relative: {
                "+": function(e, t) {
                  var n = typeof t == "string",
                    r = n && !d.test(t),
                    i = n && !r;
                  r && (t = t.toLowerCase());
                  for (var s = 0, o = e.length, u; s < o; s++)
                    if ((u = e[s])) {
                      while ((u = u.previousSibling) && u.nodeType !== 1);
                      e[s] =
                        i || (u && u.nodeName.toLowerCase() === t)
                          ? u || !1
                          : u === t;
                    }
                  i && F(t, e, !0);
                },
                ">": function(e, t) {
                  var n,
                    r = typeof t == "string",
                    i = 0,
                    s = e.length;
                  if (r && !d.test(t)) {
                    t = t.toLowerCase();
                    for (; i < s; i++) {
                      n = e[i];
                      if (n) {
                        var o = n.parentNode;
                        e[i] = o.nodeName.toLowerCase() === t ? o : !1;
                      }
                    }
                  } else {
                    for (; i < s; i++)
                      (n = e[i]),
                        n && (e[i] = r ? n.parentNode : n.parentNode === t);
                    r && F(t, e, !0);
                  }
                },
                "": function(e, t, n) {
                  W("parentNode", e, t, n);
                },
                "~": function(e, t, n) {
                  W("previousSibling", e, t, n);
                }
              },
              find: {
                ID: k
                  ? function(e, t, n) {
                      if (typeof t.getElementById !== a && !n) {
                        var r = t.getElementById(e[1]);
                        return r && r.parentNode ? [r] : [];
                      }
                    }
                  : function(e, t, r) {
                      if (typeof t.getElementById !== a && !r) {
                        var i = t.getElementById(e[1]);
                        return i
                          ? i.id === e[1] ||
                            (typeof i.getAttributeNode !== a &&
                              i.getAttributeNode("id").nodeValue === e[1])
                            ? [i]
                            : n
                          : [];
                      }
                    },
                NAME: function(e, t) {
                  if (typeof t.getElementsByName !== a) {
                    var n = [],
                      r = t.getElementsByName(e[1]),
                      i = 0,
                      s = r.length;
                    for (; i < s; i++)
                      r[i].getAttribute("name") === e[1] && n.push(r[i]);
                    return n.length === 0 ? null : n;
                  }
                },
                TAG: L
                  ? function(e, t) {
                      if (typeof t.getElementsByTagName !== a)
                        return t.getElementsByTagName(e[1]);
                    }
                  : function(e, t) {
                      var n = t.getElementsByTagName(e[1]);
                      if (e[1] === "*") {
                        var r = [],
                          i = 0;
                        for (; n[i]; i++) n[i].nodeType === 1 && r.push(n[i]);
                        n = r;
                      }
                      return n;
                    }
              },
              preFilter: {
                CLASS: function(e, t, n, r, i, s) {
                  e = " " + e[1].replace(p, "") + " ";
                  if (s) return e;
                  for (var o = 0, u; (u = t[o]) != null; o++)
                    u &&
                      (i ^
                      (u.className &&
                        ~(" " + u.className + " ").replace(E, " ").indexOf(e))
                        ? n || r.push(u)
                        : n && (t[o] = !1));
                  return !1;
                },
                ID: function(e) {
                  return e[1].replace(p, "");
                },
                TAG: function(e, t) {
                  return e[1].replace(p, "").toLowerCase();
                },
                CHILD: function(e) {
                  if (e[1] === "nth") {
                    e[2] || I(e[0]), (e[2] = e[2].replace(y, ""));
                    var t = g.exec(
                      (e[2] === "even" && "2n") ||
                        (e[2] === "odd" && "2n+1") ||
                        (!m.test(e[2]) && "0n+" + e[2]) ||
                        e[2]
                    );
                    (e[2] = t[1] + (t[2] || 1) - 0), (e[3] = t[3] - 0);
                  } else e[2] && I(e[0]);
                  return (e[0] = o++), e;
                },
                ATTR: function(e, t, n, r, i, s) {
                  var o = (e[1] = e[1].replace(p, ""));
                  return (
                    !s && R.attrMap[o] && (e[1] = R.attrMap[o]),
                    (e[4] = (e[4] || e[5] || "").replace(p, "")),
                    e[2] === "~=" && (e[4] = " " + e[4] + " "),
                    e
                  );
                },
                PSEUDO: function(e, t, n, i, s, o) {
                  if (e[1] === "not") {
                    if (!((h.exec(e[3]) || "").length > 1 || v.test(e[3]))) {
                      var u = F(e[3], t, n, !s);
                      return n || i.push.apply(i, u), !1;
                    }
                    e[3] = _(e[3], r, [], t, o);
                  } else if (x.POS.test(e[0]) || x.CHILD.test(e[0])) return !0;
                  return e;
                },
                POS: function(e) {
                  return e.unshift(!0), e;
                }
              },
              filters: {
                enabled: function(e) {
                  return e.disabled === !1;
                },
                disabled: function(e) {
                  return e.disabled === !0;
                },
                checked: function(e) {
                  var t = e.nodeName.toLowerCase();
                  return (
                    (t === "input" && !!e.checked) ||
                    (t === "option" && !!e.selected)
                  );
                },
                selected: function(e) {
                  return (
                    e.parentNode && e.parentNode.selectedIndex,
                    e.selected === !0
                  );
                },
                parent: function(e) {
                  return !!e.firstChild;
                },
                empty: function(e) {
                  return !e.firstChild;
                },
                has: function(e, t, n) {
                  return !!M(n[3], e).length;
                },
                header: function(e) {
                  return b.test(e.nodeName);
                },
                text: function(e) {
                  var t = e.getAttribute("type"),
                    n = e.type;
                  return (
                    e.nodeName.toLowerCase() === "input" &&
                    "text" === n &&
                    (t === null || t.toLowerCase() === n)
                  );
                },
                radio: function(e) {
                  return (
                    e.nodeName.toLowerCase() === "input" && "radio" === e.type
                  );
                },
                checkbox: function(e) {
                  return (
                    e.nodeName.toLowerCase() === "input" &&
                    "checkbox" === e.type
                  );
                },
                file: function(e) {
                  return (
                    e.nodeName.toLowerCase() === "input" && "file" === e.type
                  );
                },
                password: function(e) {
                  return (
                    e.nodeName.toLowerCase() === "input" &&
                    "password" === e.type
                  );
                },
                submit: function(e) {
                  var t = e.nodeName.toLowerCase();
                  return (
                    (t === "input" || t === "button") && "submit" === e.type
                  );
                },
                image: function(e) {
                  return (
                    e.nodeName.toLowerCase() === "input" && "image" === e.type
                  );
                },
                reset: function(e) {
                  var t = e.nodeName.toLowerCase();
                  return (
                    (t === "input" || t === "button") && "reset" === e.type
                  );
                },
                button: function(e) {
                  var t = e.nodeName.toLowerCase();
                  return (
                    (t === "input" && "button" === e.type) || t === "button"
                  );
                },
                input: function(e) {
                  return w.test(e.nodeName);
                },
                focus: function(e) {
                  var t = e.ownerDocument;
                  return (
                    e === t.activeElement &&
                    (!t.hasFocus || t.hasFocus()) &&
                    (!!e.type || !!e.href)
                  );
                },
                active: function(e) {
                  return e === e.ownerDocument.activeElement;
                },
                contains: function(e, t, n) {
                  return (
                    (e.textContent || e.innerText || q(e)).indexOf(n[3]) >= 0
                  );
                }
              },
              setFilters: {
                first: function(e, t) {
                  return t === 0;
                },
                last: function(e, t, n, r) {
                  return t === r.length - 1;
                },
                even: function(e, t) {
                  return t % 2 === 0;
                },
                odd: function(e, t) {
                  return t % 2 === 1;
                },
                lt: function(e, t, n) {
                  return t < n[3] - 0;
                },
                gt: function(e, t, n) {
                  return t > n[3] - 0;
                },
                nth: function(e, t, n) {
                  return n[3] - 0 === t;
                },
                eq: function(e, t, n) {
                  return n[3] - 0 === t;
                }
              },
              filter: {
                PSEUDO: function(e, t, n, r) {
                  var i = t[1],
                    s = R.filters[i];
                  if (s) return s(e, n, t, r);
                  if (i === "not") {
                    var o = t[3],
                      u = 0,
                      a = o.length;
                    for (; u < a; u++) if (o[u] === e) return !1;
                    return !0;
                  }
                  I(i);
                },
                CHILD: function(e, t) {
                  var n,
                    r,
                    i,
                    o,
                    u,
                    a,
                    f,
                    l = t[1],
                    c = e;
                  switch (l) {
                    case "only":
                    case "first":
                      while ((c = c.previousSibling))
                        if (c.nodeType === 1) return !1;
                      if (l === "first") return !0;
                      c = e;
                    case "last":
                      while ((c = c.nextSibling))
                        if (c.nodeType === 1) return !1;
                      return !0;
                    case "nth":
                      (n = t[2]), (r = t[3]);
                      if (n === 1 && r === 0) return !0;
                      (i = t[0]), (o = e.parentNode);
                      if (o && (o[s] !== i || !e.nodeIndex)) {
                        a = 0;
                        for (c = o.firstChild; c; c = c.nextSibling)
                          c.nodeType === 1 && (c.nodeIndex = ++a);
                        o[s] = i;
                      }
                      return (
                        (f = e.nodeIndex - r),
                        n === 0 ? f === 0 : f % n === 0 && f / n >= 0
                      );
                  }
                },
                ID: k
                  ? function(e, t) {
                      return e.nodeType === 1 && e.getAttribute("id") === t;
                    }
                  : function(e, t) {
                      var n =
                        typeof e.getAttributeNode !== a &&
                        e.getAttributeNode("id");
                      return e.nodeType === 1 && n && n.nodeValue === t;
                    },
                TAG: function(e, t) {
                  return (
                    (t === "*" && e.nodeType === 1) ||
                    (!!e.nodeName && e.nodeName.toLowerCase() === t)
                  );
                },
                CLASS: function(e, t) {
                  return (
                    (
                      " " +
                      (e.className || e.getAttribute("class")) +
                      " "
                    ).indexOf(t) > -1
                  );
                },
                ATTR: function(e, t) {
                  var n = t[1],
                    r = R.attrHandle[n]
                      ? R.attrHandle[n](e)
                      : e[n] != null
                      ? e[n]
                      : e.getAttribute(n),
                    i = r + "",
                    s = t[2],
                    o = t[4];
                  return r == null
                    ? s === "!="
                    : s === "="
                    ? i === o
                    : s === "*="
                    ? i.indexOf(o) >= 0
                    : s === "~="
                    ? (" " + i + " ").indexOf(o) >= 0
                    : o
                    ? s === "!="
                      ? i !== o
                      : s === "^="
                      ? i.indexOf(o) === 0
                      : s === "$="
                      ? i.substr(i.length - o.length) === o
                      : s === "|="
                      ? i === o || i.substr(0, o.length + 1) === o + "-"
                      : !1
                    : i && r !== !1;
                },
                POS: function(e, t, n, r) {
                  var i = t[2],
                    s = R.setFilters[i];
                  if (s) return s(e, n, t, r);
                }
              }
            };
          O &&
            (R.order.splice(1, 0, "CLASS"),
            (R.find.CLASS = function(e, t, n) {
              if (typeof t.getElementsByClassName !== a && !n)
                return t.getElementsByClassName(e[1]);
            }));
          var U, z;
          i.compareDocumentPosition
            ? (U = function(e, t) {
                return e === t
                  ? ((f = !0), 0)
                  : !e.compareDocumentPosition || !t.compareDocumentPosition
                  ? e.compareDocumentPosition
                    ? -1
                    : 1
                  : e.compareDocumentPosition(t) & 4
                  ? -1
                  : 1;
              })
            : ((U = function(e, t) {
                if (e === t) return (f = !0), 0;
                if (e.sourceIndex && t.sourceIndex)
                  return e.sourceIndex - t.sourceIndex;
                var n,
                  r,
                  i = [],
                  s = [],
                  o = e.parentNode,
                  u = t.parentNode,
                  a = o;
                if (o === u) return z(e, t);
                if (!o) return -1;
                if (!u) return 1;
                while (a) i.unshift(a), (a = a.parentNode);
                a = u;
                while (a) s.unshift(a), (a = a.parentNode);
                (n = i.length), (r = s.length);
                for (var l = 0; l < n && l < r; l++)
                  if (i[l] !== s[l]) return z(i[l], s[l]);
                return l === n ? z(e, s[l], -1) : z(i[l], t, 1);
              }),
              (z = function(e, t, n) {
                if (e === t) return n;
                var r = e.nextSibling;
                while (r) {
                  if (r === t) return -1;
                  r = r.nextSibling;
                }
                return 1;
              })),
            r.querySelectorAll &&
              (function() {
                var e = _,
                  t = "__sizzle__",
                  n = /^\s*[+~]/,
                  r = /'/g,
                  i = [];
                C(function(e) {
                  (e.innerHTML = "<select><option selected></option></select>"),
                    e.querySelectorAll("[selected]").length ||
                      i.push(
                        "\\[[\\x20\\t\\n\\r\\f]*(?:checked|disabled|ismap|multiple|readonly|selected|value)"
                      ),
                    e.querySelectorAll(":checked").length || i.push(":checked");
                }),
                  C(function(e) {
                    (e.innerHTML = "<p class=''></p>"),
                      e.querySelectorAll("[class^='']").length &&
                        i.push("[*^$]=[\\x20\\t\\n\\r\\f]*(?:\"\"|'')"),
                      (e.innerHTML = "<input type='hidden'>"),
                      e.querySelectorAll(":enabled").length ||
                        i.push(":enabled", ":disabled");
                  }),
                  (i = i.length && new RegExp(i.join("|"))),
                  (_ = function(s, o, u, a, f) {
                    if (!a && !f && (!i || !i.test(s)))
                      if (o.nodeType === 9)
                        try {
                          return P(o.querySelectorAll(s), u);
                        } catch (l) {}
                      else if (
                        o.nodeType === 1 &&
                        o.nodeName.toLowerCase() !== "object"
                      ) {
                        var c = o,
                          h = o.getAttribute("id"),
                          p = h || t,
                          d = o.parentNode,
                          v = n.test(s);
                        h
                          ? (p = p.replace(r, "\\$&"))
                          : o.setAttribute("id", p),
                          v && d && (o = d);
                        try {
                          if (!v || d)
                            return P(
                              o.querySelectorAll("[id='" + p + "'] " + s),
                              u
                            );
                        } catch (l) {
                        } finally {
                          h || c.removeAttribute("id");
                        }
                      }
                    return e(s, o, u, a, f);
                  });
              })();
          var X = function(e, t, n, r) {
            var i,
              s = [],
              o = "",
              u = t.nodeType ? [t] : t,
              a = 0,
              f = u.length;
            while ((i = x.PSEUDO.exec(e)))
              (o += i[0]), (e = e.replace(x.PSEUDO, ""));
            R.relative[e] && (e += "*");
            for (; a < f; a++) _(e, u[a], s, n, r);
            return F(o, s);
          };
          (e.Sizzle = t.sizzle = M),
            (t.query.matches = function(e, t) {
              return _(e, r, [], t, D(r));
            });
        })(window),
        t.dom.extend({
          ready: (function() {
            var e = this,
              n,
              r = window.document;
            (t._util_.isDomReady = !1),
              (t._util_._readyWait = 1),
              (t.dom.holdReady = function(e) {
                e ? t._util_.readyWait++ : i(!0);
              });
            var i = function(e) {
                if (e === !0 ? --t._util_.readyWait : t._util_.isDomReady)
                  return;
                if (!r.body) return setTimeout(i, 1);
                t._util_.isReady = !0;
                if (e !== !0 && --t._util_.readyWait > 0) return;
                n.resolveWith(r),
                  t.dom.trigger &&
                    t
                      .dom(r)
                      .trigger("ready")
                      .off("ready");
              },
              s = function() {
                r.addEventListener
                  ? (r.removeEventListener("DOMContentLoaded", s, !1), i())
                  : r.readyState === "complete" &&
                    (r.detachEvent("onreadystatechange", s), i());
              },
              o = function(e) {
                if (!n) {
                  n = t.Deferred();
                  if (r.readyState === "complete") setTimeout(i, 1);
                  else if (r.addEventListener)
                    r.addEventListener("DOMContentLoaded", s, !1),
                      window.addEventListener("load", i, !1);
                  else {
                    r.attachEvent("onreadystatechange", s),
                      window.attachEvent("onload", i);
                    var o = !1;
                    try {
                      o = window.frameElement == null && r.documentElement;
                    } catch (u) {}
                    o &&
                      o.doScroll &&
                      (function a() {
                        if (!t._util_.isDomReady) {
                          try {
                            o.doScroll("left");
                          } catch (e) {
                            return setTimeout(a, 50);
                          }
                          i();
                        }
                      })();
                  }
                }
                return n.promise(e);
              };
            return function(t) {
              return o().done(t), e;
            };
          })()
        }),
        t.dom.extend({
          removeAttr: function(e) {
            return (
              this.each(function(n, r) {
                t._util_.removeAttr(r, e);
              }),
              this
            );
          }
        }),
        t.dom.extend({
          removeClass: function(e) {
            var n = typeof e,
              r = " ";
            arguments.length ||
              t.forEach(this, function(e) {
                e.className = "";
              });
            if (n == "string") {
              e = t.string.trim(e);
              var i = e.split(" ");
              t.forEach(this, function(e) {
                var n = e.className;
                for (var s = 0; s < i.length; s++)
                  while (~(r + n + r).indexOf(r + i[s] + r))
                    n = (r + n + r).replace(r + i[s] + r, r);
                e.className = t.string.trim(n);
              });
            } else
              n == "function" &&
                t.forEach(this, function(n, r, i) {
                  t.dom(n).removeClass(e.call(n, r, n.className));
                });
            return this;
          }
        }),
        t.dom.extend({
          removeData: (function() {
            var e = t.key,
              n = t.global("_maps_HTMLElementData");
            return function(r) {
              return (
                t.forEach(this, function(n) {
                  !n[e] && (n[e] = t.id());
                }),
                t.forEach(this, function(i) {
                  var s = n[i[e]];
                  typeof r == "string"
                    ? s && delete s[r]
                    : t.type(r) == "array" &&
                      t.forEach(r, function(e) {
                        s && delete s[e];
                      });
                }),
                this
              );
            };
          })()
        }),
        t.dom.extend({
          removeProp: function(e) {
            return (
              (e = t._util_.propFixer[e] || e),
              this.each(function(t, n) {
                try {
                  (n[e] = undefined), delete n[e];
                } catch (r) {}
              }),
              this
            );
          }
        }),
        (t._util_.smartScroll = function(e) {
          function s(e) {
            return e && e.nodeType === 9;
          }
          function o(e) {
            return t.type(e) == "Window"
              ? e
              : s(e)
              ? e.defaultView || e.parentWindow
              : !1;
          }
          var n = { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }[e],
            r = e === "scrollLeft",
            i = {};
          return {
            get: function(r) {
              var i = o(r);
              return i
                ? n in i
                  ? i[n]
                  : (t.browser.isStrict && i.document.documentElement[e]) ||
                    i.document.body[e]
                : r[e];
            },
            set: function(t, n) {
              if (!t) return;
              var i = o(t);
              i
                ? i.scrollTo(r ? n : this.get(t), r ? this.get(t) : n)
                : (t[e] = n);
            }
          };
        }),
        t.dom.extend({
          scrollLeft: (function() {
            var e = t._util_.smartScroll("scrollLeft");
            return function(n) {
              return (
                n && t.check("^(?:number|string)$", "baidu.dom.scrollLeft"),
                this.size() <= 0
                  ? n === undefined
                    ? 0
                    : this
                  : n === undefined
                  ? e.get(this[0])
                  : e.set(this[0], n) || this
              );
            };
          })()
        }),
        t.dom.extend({
          scrollTop: (function() {
            var e = t._util_.smartScroll("scrollTop");
            return function(n) {
              return (
                n && t.check("^(?:number|string)$", "baidu.dom.scrollTop"),
                this.size() <= 0
                  ? n === undefined
                    ? 0
                    : this
                  : n === undefined
                  ? e.get(this[0])
                  : e.set(this[0], n) || this
              );
            };
          })()
        }),
        (t.dom.setPixel = function(e, n, r) {
          typeof r != "undefined" &&
            (t.dom.g(e).style[n] = r + (isNaN(r) ? "" : "px"));
        }),
        (t._util_.getDefaultDisplayValue = (function() {
          var e = {};
          return function(n) {
            if (e[n]) return e[n];
            var r = document.createElement(n),
              i,
              s,
              o;
            document.body.appendChild(r),
              (i = t.dom(r).getCurrentStyle("display")),
              document.body.removeChild(r);
            if (i === "" || i === "none")
              (s = document.body.appendChild(document.createElement("iframe"))),
                (s.frameBorder = s.width = s.height = 0),
                (o = (s.contentWindow || s.contentDocument).document),
                o.writeln("<!DOCTYPE html><html><body>"),
                o.close(),
                (r = o.appendChild(o.createElement(n))),
                (i = t.dom(r).getCurrentStyle("display")),
                document.body.removeChild(s),
                (s = null);
            return (r = null), (e[n] = i);
          };
        })()),
        t.dom.extend({
          show: function() {
            var e = [],
              n,
              r;
            return (
              this.each(function(i, s) {
                if (!s.style) return;
                (r = t.dom(s)),
                  (n = s.style.display),
                  (e[i] = r.data("olddisplay")),
                  !e[i] && n === "none" && (s.style.display = ""),
                  s.style.display === "" &&
                    t._util_.isHidden(s) &&
                    r.data(
                      "olddisplay",
                      (e[i] = t._util_.getDefaultDisplayValue(s.nodeName))
                    );
              }),
              this.each(function(t, n) {
                if (!n.style) return;
                if (n.style.display === "none" || n.style.display === "")
                  n.style.display = e[t] || "";
              })
            );
          }
        }),
        t.dom.extend({
          siblings: function(e) {
            var n = [];
            return (
              t.forEach(this, function(e) {
                var r = [],
                  i = [],
                  s = e;
                while ((s = s.previousSibling)) s.nodeType == 1 && r.push(s);
                while ((e = e.nextSibling)) e.nodeType == 1 && i.push(e);
                t.merge(n, r.reverse().concat(i));
              }),
              this.pushStack(t.dom.match(n, e))
            );
          }
        }),
        t.dom.extend({
          slice: (function() {
            var e = Array.prototype.slice;
            return function(n, r) {
              return (
                t.check("number(,number)?", "baidu.dom.slice"),
                this.pushStack(e.apply(this, arguments))
              );
            };
          })()
        }),
        t.dom.extend({
          text: function(e) {
            var n = t.dom,
              r = this,
              i = !1,
              s;
            if (this.size() <= 0)
              switch (typeof e) {
                case "undefined":
                  return undefined;
                default:
                  return r;
              }
            var o = function(e) {
              var t,
                n = "",
                r = 0,
                i = e.nodeType;
              if (i)
                if (i === 1 || i === 9 || i === 11) {
                  if (typeof e.textContent == "string") return e.textContent;
                  for (e = e.firstChild; e; e = e.nextSibling) n += o(e);
                } else if (i === 3 || i === 4) return e.nodeValue;
              return n;
            };
            return (
              t.forEach(r, function(t, r) {
                var u = n(t);
                if (s) return;
                switch (typeof e) {
                  case "undefined":
                    return (s = o(t)), s;
                  case "number":
                    e = String(e);
                  case "string":
                    (i = !0),
                      u
                        .empty()
                        .append(
                          ((t && t.ownerDocument) || document).createTextNode(e)
                        );
                    break;
                  case "function":
                    (i = !0), u.text(e.call(t, r, u.text()));
                }
              }),
              i ? r : s
            );
          }
        }),
        t.dom.extend({
          toggle: function() {
            for (var e = 0, t = this.size(); e < t; e++) {
              var n = this.eq(e);
              n.css("display") != "none" ? n.hide() : n.show();
            }
          }
        }),
        t.dom.extend({
          toggleClass: function(e, n) {
            var r = typeof e,
              n = typeof n == "undefined" ? n : Boolean(n);
            arguments.length <= 0 &&
              t.forEach(this, function(e) {
                e.className = "";
              });
            switch (typeof e) {
              case "string":
                e = e
                  .replace(/^\s+/g, "")
                  .replace(/\s+$/g, "")
                  .replace(/\s+/g, " ");
                var i = e.split(" ");
                t.forEach(this, function(e) {
                  var t = e.className;
                  for (var r = 0; r < i.length; r++)
                    ~(" " + t + " ").indexOf(" " + i[r] + " ") &&
                    typeof n == "undefined"
                      ? (t = (" " + t + " ").replace(" " + i[r] + " ", " "))
                      : !~(" " + t + " ").indexOf(" " + i[r] + " ") &&
                        typeof n == "undefined"
                      ? (t += " " + i[r])
                      : !~(" " + t + " ").indexOf(" " + i[r] + " ") && n === !0
                      ? (t += " " + i[r])
                      : ~(" " + t + " ").indexOf(" " + i[r] + " ") &&
                        n === !1 &&
                        (t = t.replace(i[r], ""));
                  e.className = t.replace(/^\s+/g, "").replace(/\s+$/g, "");
                });
                break;
              case "function":
                t.forEach(this, function(r, i) {
                  t.dom(r).toggleClass(e.call(r, i, r.className), n);
                });
            }
            return this;
          }
        }),
        void (function(e) {
          if (e.mousewheel) return;
          var n = /firefox/i.test(navigator.userAgent),
            r = /msie/i.test(navigator.userAgent);
          t.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function(
            n,
            r
          ) {
            e[n] = {
              bindType: r,
              pack: function(e) {
                var r = t.dom.contains;
                return function(t) {
                  var i = t.relatedTarget;
                  t.type = n;
                  if (!i || (i !== this && !r(this, i)))
                    return e.apply(this, arguments);
                };
              }
            };
          }),
            r ||
              t.each({ focusin: "focus", focusout: "blur" }, function(t, n) {
                e[t] = {
                  bindType: n,
                  attachElements: "textarea,select,input,button,a"
                };
              }),
            (e.mousewheel = {
              bindType: n ? "DOMMouseScroll" : "mousewheel",
              pack: function(e) {
                return function(t) {
                  var r = t.originalEvent;
                  return (
                    (t.type = "mousewheel"),
                    (t.wheelDelta =
                      t.wheelDelta || (n ? r.detail * -40 : r.wheelDelta) || 0),
                    e.apply(this, arguments)
                  );
                };
              }
            });
        })(t.event.special),
        void (function(e) {
          var n = e.queue;
          t.dom.extend({
            triggerHandler: function(e, r, i) {
              return (
                i && !i.triggerData && (i.triggerData = r),
                t.forEach(this, function(t) {
                  n.call(t, e, undefined, i);
                }),
                this
              );
            }
          });
        })(t._util_.eventBase),
        void (function(e, n) {
          var r = n.special,
            i = e.queue,
            s = t.dom,
            o = !window.addEventListener,
            u = /firefox/i.test(navigator.userAgent),
            a = { submit: 3, focus: o ? 3 : 2, blur: o ? 3 : u ? 1 : 2 },
            f = function(e, t) {
              var n;
              document.createEvent
                ? ((n = document.createEvent("HTMLEvents")),
                  n.initEvent(e, !0, !0))
                : document.createEventObject &&
                  ((n = document.createEventObject()), (n.type = e));
              var r = {};
              if (t)
                for (var i in t)
                  try {
                    n[i] = t[i];
                  } catch (s) {
                    n.extraData || (n.extraData = r), (r[i] = t[i]);
                  }
              return n;
            },
            l = function(e, t, n) {
              if (e.dispatchEvent) return e.dispatchEvent(n);
              if (e.fireEvent) return e.fireEvent("on" + t, n);
            },
            c = function(e, t, n, r, o) {
              var u, c;
              if ((u = f(t, r))) {
                n && (u.triggerData = n);
                if (o) i.call(e, t, null, u);
                else {
                  var h = e.window === window ? 3 : a[t];
                  try {
                    if (h & 1 || !(t in a)) c = l(e, t, u);
                  } catch (p) {
                    s(e).triggerHandler(t, n, u);
                  }
                  if (c !== !1 && h & 2)
                    try {
                      e[t] && e[t]();
                    } catch (p) {}
                }
              }
            };
          t.dom.extend({
            trigger: function(e, t, n) {
              var i;
              return (
                e in r && (i = r[e]),
                this.each(function() {
                  c(this, e, t, n, i);
                }),
                this
              );
            }
          });
        })(t._util_.eventBase, t.event),
        t.dom.extend({
          unbind: function(e, t) {
            return this.off(e, t);
          }
        }),
        t.dom.extend({
          undelegate: function(e, t, n) {
            return this.off(t, e, n);
          }
        }),
        t.dom.extend({
          unique: function(e) {
            return t.dom(t.array(this.toArray()).unique(e));
          }
        }),
        (t._util_.inArray = function(e, t, n) {
          if (!t) return -1;
          var r = Array.prototype.indexOf,
            i;
          if (r) return r.call(t, e, n);
          (i = t.length), (n = n ? (n < 0 ? Math.max(0, i + n) : n) : 0);
          for (; n < i; n++) if (n in t && t[n] === e) return n;
          return -1;
        }),
        t.dom.extend({
          val: (function() {
            t._util_.support.dom.select.disabled = !0;
            var e = t._util_,
              n = e.support.dom.input.value === "on",
              r = !e.support.dom.opt.disabled,
              i = ["radio", "checkbox"],
              s = {
                option: {
                  get: function(e) {
                    var t = e.attributes.value;
                    return !t || t.specified ? e.value : e.text;
                  }
                },
                select: {
                  get: function(n) {
                    var i = n.options,
                      s = n.selectedIndex,
                      o = n.type === "select-one" || s < 0,
                      u = o ? null : [],
                      a = o ? s + 1 : i.length,
                      f = s < 0 ? a : o ? s : 0,
                      l,
                      c;
                    for (; f < a; f++) {
                      l = i[f];
                      if (
                        (l.selected || f === s) &&
                        (r
                          ? !l.disabled
                          : l.getAttribute("disabled") === null) &&
                        (!l.parentNode.disabled ||
                          !e.nodeName(l.parentNode, "optgroup"))
                      ) {
                        c = t.dom(l).val();
                        if (o) return c;
                        u.push(c);
                      }
                    }
                    return u;
                  },
                  set: function(n, r, i) {
                    var s = t.makeArray(i);
                    return (
                      t
                        .dom(n)
                        .find("option")
                        .each(function(n, r) {
                          r.selected = e.inArray(t.dom(this).val(), s) >= 0;
                        }),
                      !s.length && (n.selectedIndex = -1),
                      s
                    );
                  }
                }
              };
            return (
              !e.support.getSetAttribute && (s.button = e.nodeHook),
              n ||
                t.forEach(i, function(e) {
                  s[e] = {
                    get: function(e) {
                      return e.getAttribute("value") === null ? "on" : e.value;
                    }
                  };
                }),
              t.forEach(i, function(n) {
                (s[n] = s[n] || {}),
                  (s[n].set = function(n, r, i) {
                    if (t.type(i) === "array")
                      return (n.checked = e.inArray(t.dom(n).val(), i) >= 0);
                  });
              }),
              function(e) {
                var n, r;
                if (e === undefined) {
                  if (!(n = this[0])) return;
                  return (
                    (r = s[n.type] || s[n.nodeName.toLowerCase()] || {}),
                    (r.get && r.get(n, "value")) || n.value
                  );
                }
                return (
                  this.each(function(n, i) {
                    if (i.nodeType !== 1) return;
                    var o = t.dom(i),
                      u = t.type(e) === "function" ? e.call(i, n, o.val()) : e;
                    u == null
                      ? (u = "")
                      : t.type(u) === "number"
                      ? (u += "")
                      : t.type(u) === "array" &&
                        (u = t.array(u).map(function(e) {
                          return e == null ? "" : e + "";
                        })),
                      (r = s[i.type] || s[i.nodeName.toLowerCase()] || {});
                    if (!r.set || r.set(i, "value", u) === undefined)
                      i.value = u;
                  }),
                  this
                );
              }
            );
          })()
        }),
        t.dom.extend({
          width: function(e) {
            return t._util_.access(this, "width", e, function(e, n, r) {
              var i = r !== undefined,
                s = i && parseFloat(r),
                o =
                  e != null && e == e.window
                    ? "window"
                    : e.nodeType === 9
                    ? "document"
                    : !1;
              if ((i && s < 0) || isNaN(s)) return;
              return (
                i && /^(?:\d*\.)?\d+$/.test((r += "")) && (r += "px"),
                o
                  ? t._util_.getWindowOrDocumentWidthOrHeight(e, o, n)
                  : i
                  ? (e.style.width = r)
                  : t._util_.getWidthOrHeight(e, n)
              );
            });
          }
        }),
        t.dom.extend({
          end: function() {
            return this.prevObject || t.dom(null);
          }
        }),
        void (function() {
          var e = "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave mousewheel change select submit keydown keypress keyup error contextmenu".split(
              " "
            ),
            n = {},
            r = function(e) {
              n[e] = function(t, n) {
                return (
                  n == null && ((n = t), (t = null)),
                  arguments.length > 0
                    ? this.on(e, null, t, n)
                    : this.trigger(e)
                );
              };
            };
          for (var i = 0, s = e.length; i < s; i++) r(e[i]);
          t.dom.extend(n);
        })(),
        t.createChain(
          "fn",
          function(e) {
            return new t.fn.$Fn(
              ~"function|string".indexOf(t.type(e)) ? e : function() {}
            );
          },
          function(e) {
            this.fn = e;
          }
        ),
        t.fn.extend({
          bind: function(e) {
            var n = this.fn,
              r =
                arguments.length > 1
                  ? Array.prototype.slice.call(arguments, 1)
                  : null;
            return function() {
              var i = t.type(n) === "string" ? e[n] : n,
                s = r
                  ? r.concat(Array.prototype.slice.call(arguments, 0))
                  : arguments;
              return i.apply(e || i, s);
            };
          }
        }),
        (t.fn.blank = function() {}),
        (t.fx = t.fx || {}),
        (t.lang.inherits = t.base.inherits),
        (t.fx.Timeline = function(e) {
          t.lang.Class.call(this),
            (this.interval = 16),
            (this.duration = 500),
            (this.dynamic = !0),
            t.object.extend(this, e);
        }),
        t.lang
          .inherits(t.fx.Timeline, t.lang.Class, "baidu.fx.Timeline")
          .extend({
            launch: function() {
              var e = this;
              return (
                e.dispatchEvent("onbeforestart"),
                typeof e.initialize == "function" && e.initialize(),
                (e["btime"] = new Date().getTime()),
                (e["etime"] = e["btime"] + (e.dynamic ? e.duration : 0)),
                e["pulsed"](),
                e
              );
            },
            "pulsed": function() {
              var e = this,
                t = new Date().getTime();
              (e.percent = (t - e["btime"]) / e.duration),
                e.dispatchEvent("onbeforeupdate");
              if (t >= e["etime"]) {
                typeof e.render == "function" &&
                  e.render(e.transition((e.percent = 1))),
                  typeof e.finish == "function" && e.finish(),
                  e.dispatchEvent("onafterfinish"),
                  e.dispose();
                return;
              }
              typeof e.render == "function" &&
                e.render(e.transition(e.percent)),
                e.dispatchEvent("onafterupdate"),
                (e["timer"] = setTimeout(function() {
                  e["pulsed"]();
                }, e.interval));
            },
            transition: function(e) {
              return e;
            },
            cancel: function() {
              this["timer"] && clearTimeout(this["timer"]),
                (this["etime"] = this["btime"]),
                typeof this.restore == "function" && this.restore(),
                this.dispatchEvent("oncancel"),
                this.dispose();
            },
            end: function() {
              this["timer"] && clearTimeout(this["timer"]),
                (this["etime"] = this["btime"]),
                this["pulsed"]();
            }
          }),
        (t.fx.create = function(e, n, r) {
          var i = new t.fx.Timeline(n);
          (i.element = e), (i.__type = r || i.__type), (i["original"] = {});
          var s = "baidu_current_effect";
          return (
            i.addEventListener("onbeforestart", function() {
              var e = this,
                t;
              (e.attribName = "att_" + e.__type.replace(/\W/g, "_")),
                (t = e.element.getAttribute(s)),
                e.element.setAttribute(s, (t || "") + "|" + e.guid + "|", 0),
                e.overlapping ||
                  ((t = e.element.getAttribute(e.attribName)) &&
                    baiduInstance(t).cancel(),
                  e.element.setAttribute(e.attribName, e.guid, 0));
            }),
            (i["clean"] = function(e) {
              var t = this,
                n;
              if ((e = t.element))
                e.removeAttribute(t.attribName),
                  (n = e.getAttribute(s)),
                  (n = n.replace("|" + t.guid + "|", "")),
                  n ? e.setAttribute(s, n, 0) : e.removeAttribute(s);
            }),
            i.addEventListener("oncancel", function() {
              this["clean"](), this["restore"]();
            }),
            i.addEventListener("onafterfinish", function() {
              this["clean"](), this.restoreAfterFinish && this["restore"]();
            }),
            (i.protect = function(e) {
              this["original"][e] = this.element.style[e];
            }),
            (i["restore"] = function() {
              var e = this["original"],
                t = this.element.style,
                n;
              for (var r in e) {
                n = e[r];
                if (typeof n == "undefined") continue;
                (t[r] = n),
                  !n && t.removeAttribute
                    ? t.removeAttribute(r)
                    : !n && t.removeProperty && t.removeProperty(r);
              }
            }),
            i
          );
        }),
        (t.fx.current = function(e) {
          if (!(e = t.dom.g(e))) return null;
          var n,
            r,
            i = /\|([^\|]+)\|/g;
          do if ((r = e.getAttribute("baidu_current_effect"))) break;
          while ((e = e.parentNode) && e.nodeType == 1);
          if (!r) return null;
          if ((n = r.match(i))) {
            i = /\|([^\|]+)\|/;
            for (var s = 0; s < n.length; s++)
              i.test(n[s]), (n[s] = t._global_._instances[RegExp.$1]);
          }
          return n;
        }),
        t.string.extend({
          formatColor: (function() {
            var e = /^\#[\da-f]{6}$/i,
              t = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/i,
              n = {
                black: "#000000",
                silver: "#c0c0c0",
                gray: "#808080",
                white: "#ffffff",
                maroon: "#800000",
                red: "#ff0000",
                purple: "#800080",
                fuchsia: "#ff00ff",
                green: "#008000",
                lime: "#00ff00",
                olive: "#808000",
                yellow: "#ffff0",
                navy: "#000080",
                blue: "#0000ff",
                teal: "#008080",
                aqua: "#00ffff"
              };
            return function() {
              var r = this.valueOf();
              if (e.test(r)) return r;
              if (t.test(r)) {
                for (var i, s = 1, r = "#"; s < 4; s++)
                  (i = parseInt(RegExp["$" + s]).toString(16)),
                    (r += ("00" + i).substr(i.length));
                return r;
              }
              if (/^\#[\da-f]{3}$/.test(r)) {
                var o = r.charAt(1),
                  u = r.charAt(2),
                  a = r.charAt(3);
                return "#" + o + o + u + u + a + a;
              }
              return n[r] ? n[r] : "";
            };
          })()
        }),
        (t.fx.move = function(e, n) {
          if (!(e = t.dom.g(e)) || t.dom.getStyle(e, "position") == "static")
            return null;
          n = t.object.extend({ x: 0, y: 0 }, n || {});
          if (n.x == 0 && n.y == 0) return null;
          var r = t.fx.create(
            e,
            t.object.extend(
              {
                initialize: function() {
                  this.protect("top"),
                    this.protect("left"),
                    (this.originX = parseInt(t.dom.getStyle(e, "left")) || 0),
                    (this.originY = parseInt(t.dom.getStyle(e, "top")) || 0);
                },
                transition: function(e) {
                  return 1 - Math.pow(1 - e, 2);
                },
                render: function(t) {
                  (e.style.top = this.y * t + this.originY + "px"),
                    (e.style.left = this.x * t + this.originX + "px");
                }
              },
              n
            ),
            "baidu.fx.move"
          );
          return r.launch();
        }),
        (t.fx.moveTo = function(e, n, r) {
          if (
            !(e = t.dom.g(e)) ||
            t.dom.getStyle(e, "position") == "static" ||
            typeof n != "object"
          )
            return null;
          var i = [n[0] || n.x || 0, n[1] || n.y || 0],
            s = parseInt(t.dom.getStyle(e, "left")) || 0,
            o = parseInt(t.dom.getStyle(e, "top")) || 0,
            u = t.fx.move(
              e,
              t.object.extend({ x: i[0] - s, y: i[1] - o }, r || {})
            );
          return u;
        }),
        (t.fx.scrollBy = function(e, n, r) {
          if (!(e = t.dom.g(e)) || typeof n != "object") return null;
          var i = {},
            s = {};
          (i.x = n[0] || n.x || 0), (i.y = n[1] || n.y || 0);
          var o = t.fx.create(
            e,
            t.object.extend(
              {
                initialize: function() {
                  var t = (s.sTop = e.scrollTop),
                    n = (s.sLeft = e.scrollLeft);
                  (s.sx = Math.min(e.scrollWidth - e.clientWidth - n, i.x)),
                    (s.sy = Math.min(e.scrollHeight - e.clientHeight - t, i.y));
                },
                transition: function(e) {
                  return 1 - Math.pow(1 - e, 2);
                },
                render: function(t) {
                  (e.scrollTop = s.sy * t + s.sTop),
                    (e.scrollLeft = s.sx * t + s.sLeft);
                },
                restore: function() {
                  (e.scrollTop = s.sTop), (e.scrollLeft = s.sLeft);
                }
              },
              r
            ),
            "baidu.fx.scroll"
          );
          return o.launch();
        }),
        (t.fx.scrollTo = function(e, n, r) {
          if (!(e = t.dom.g(e)) || typeof n != "object") return null;
          var i = {};
          return (
            (i.x = (n[0] || n.x || 0) - e.scrollLeft),
            (i.y = (n[1] || n.y || 0) - e.scrollTop),
            t.fx.scrollBy(e, i, r)
          );
        }),
        (t._util_.smartAjax =
          t._util_.smartAjax ||
          function(e) {
            return function(n, r, i, s) {
              t.type(r) === "function" &&
                ((s = s || i), (i = r), (r = undefined)),
                t.ajax({ type: e, url: n, data: r, success: i, dataType: s });
            };
          }),
        (t.get = t.get || t._util_.smartAjax("get")),
        (t.global.get = function(e) {
          return t.global(e);
        }),
        (t.global.set = function(e, n, r) {
          return t.global(e, n, !r);
        }),
        (t.global.getZIndex = function(e, n) {
          var r = t.global.get("zIndex");
          return e && (r[e] = r[e] + (n || 1)), r[e];
        }),
        t.global.set("zIndex", { popup: 5e4, dialog: 1e3 }, !0),
        (t.i18n = t.i18n || {}),
        (t.i18n.cultures = t.i18n.cultures || {}),
        (t.i18n.cultures["zh-CN"] = t.object.extend(
          t.i18n.cultures["zh-CN"] || {},
          (function() {
            var e = "%u4E00,%u4E8C,%u4E09,%u56DB,%u4E94,%u516D,%u4E03,%u516B,%u4E5D,%u5341".split(
              ","
            );
            return {
              calendar: {
                dateFormat: "yyyy-MM-dd",
                titleNames:
                  "#{yyyy}" +
                  unescape("%u5E74") +
                  "&nbsp;#{MM}" +
                  unescape("%u6708"),
                monthNamesShort: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                monthNames: (function() {
                  var t = e.length,
                    n = [];
                  for (var r = 0; r < 12; r++)
                    n.push(unescape(e[r] || e[t - 1] + e[r - t]));
                  return n;
                })(),
                dayNames: (function() {
                  var t = {
                    mon: 0,
                    tue: 1,
                    wed: 2,
                    thu: 3,
                    fri: 4,
                    sat: 5,
                    sun: "%u65E5"
                  };
                  for (var n in t) t[n] = unescape(e[t[n]] || t[n]);
                  return t;
                })()
              },
              timeZone: 8,
              whitespace: new RegExp(
                "(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)",
                "g"
              ),
              number: {
                group: ",",
                groupLength: 3,
                decimal: ".",
                positive: "",
                negative: "-",
                _format: function(e, n) {
                  return t.i18n.number._format(e, {
                    group: this.group,
                    groupLength: this.groupLength,
                    decimal: this.decimal,
                    symbol: n ? this.negative : this.positive
                  });
                }
              },
              currency: { symbol: unescape("%uFFE5") },
              language: (function() {
                var e = {
                  ok: "%u786E%u5B9A",
                  cancel: "%u53D6%u6D88",
                  signin: "%u6CE8%u518C",
                  signup: "%u767B%u5F55"
                };
                for (var t in e) e[t] = unescape(e[t]);
                return e;
              })()
            };
          })()
        )),
        (t.i18n.currentLocale = "zh-CN"),
        (t.i18n.date = t.i18n.date || {
          getDaysInMonth: function(e, n) {
            var r = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
            return n == 1 && t.i18n.date.isLeapYear(e) ? 29 : r[n];
          },
          isLeapYear: function(e) {
            return !(e % 400) || (!(e % 4) && !!(e % 100));
          },
          toLocaleDate: function(e, n, r) {
            return this._basicDate(e, n, r || t.i18n.currentLocale);
          },
          _basicDate: function(e, n, r) {
            var i = t.i18n.cultures[r || t.i18n.currentLocale].timeZone,
              s = i * 60,
              o,
              u,
              a = e.getTime();
            return (
              n
                ? ((o = t.i18n.cultures[n].timeZone), (u = o * 60))
                : ((u = -1 * e.getTimezoneOffset()), (o = u / 60)),
              new Date(o != i ? a + (s - u) * 6e4 : a)
            );
          },
          format: function(e, n) {
            var r = t.i18n.cultures[n || t.i18n.currentLocale];
            return t.date.format(
              t.i18n.date.toLocaleDate(e, "", n),
              r.calendar.dateFormat
            );
          }
        }),
        (t.isDate = function(e) {
          return (
            t.type(e) == "date" && e.toString() != "Invalid Date" && !isNaN(e)
          );
        }),
        (t.isDocument = function(e) {
          return t.type(e) == "Document";
        }),
        (t.isElement = function(e) {
          return t.type(e) == "HTMLElement";
        }),
        (t.isNumber = function(e) {
          return t.type(e) == "number" && isFinite(e);
        }),
        (t.isObject = function(e) {
          return typeof e == "function" || (typeof e == "object" && e != null);
        }),
        (t.isPlainObject = function(e) {
          var n,
            r = Object.prototype.hasOwnProperty;
          if (t.type(e) != "object") return !1;
          if (
            e.constructor &&
            !r.call(e, "constructor") &&
            !r.call(e.constructor.prototype, "isPrototypeOf")
          )
            return !1;
          for (n in e) break;
          return e.item && typeof e.length == "number"
            ? !1
            : n === undefined || r.call(e, n);
        }),
        (t.isWindow = function(e) {
          return t.type(e) == "Window";
        }),
        (t.json = t.json || {}),
        (t.json.parse = function(e) {
          return new Function("return (" + e + ")")();
        }),
        (t.json.stringify = (function() {
          function n(t) {
            return (
              /["\\\x00-\x1f]/.test(t) &&
                (t = t.replace(/["\\\x00-\x1f]/g, function(t) {
                  var n = e[t];
                  return n
                    ? n
                    : ((n = t.charCodeAt()),
                      "\\u00" +
                        Math.floor(n / 16).toString(16) +
                        (n % 16).toString(16));
                })),
              '"' + t + '"'
            );
          }
          function r(e) {
            var n = ["["],
              r = e.length,
              i,
              s,
              o;
            for (s = 0; s < r; s++) {
              o = e[s];
              switch (typeof o) {
                case "undefined":
                case "function":
                case "unknown":
                  break;
                default:
                  i && n.push(","), n.push(t.json.stringify(o)), (i = 1);
              }
            }
            return n.push("]"), n.join("");
          }
          function i(e) {
            return e < 10 ? "0" + e : e;
          }
          function s(e) {
            return (
              '"' +
              e.getFullYear() +
              "-" +
              i(e.getMonth() + 1) +
              "-" +
              i(e.getDate()) +
              "T" +
              i(e.getHours()) +
              ":" +
              i(e.getMinutes()) +
              ":" +
              i(e.getSeconds()) +
              '"'
            );
          }
          var e = {
            "\b": "\\b",
            "	": "\\t",
            "\n": "\\n",
            "\f": "\\f",
            "\r": "\\r",
            '"': '\\"',
            "\\": "\\\\"
          };
          return function(e) {
            switch (typeof e) {
              case "undefined":
                return "undefined";
              case "number":
                return isFinite(e) ? String(e) : "null";
              case "string":
                return n(e);
              case "boolean":
                return String(e);
              default:
                if (e === null) return "null";
                if (t.type(e) === "array") return r(e);
                if (t.type(e) === "date") return s(e);
                var i = ["{"],
                  o = t.json.stringify,
                  u,
                  a;
                for (var f in e)
                  if (Object.prototype.hasOwnProperty.call(e, f)) {
                    a = e[f];
                    switch (typeof a) {
                      case "undefined":
                      case "unknown":
                      case "function":
                        break;
                      default:
                        u && i.push(","), (u = 1), i.push(o(f) + ":" + o(a));
                    }
                  }
                return i.push("}"), i.join("");
            }
          };
        })()),
        (t.lang.createClass = t.createClass),
        (t.lang.guid = function() {
          return t.id();
        }),
        (t.lang.isArray = t.isArray),
        (t.lang.isDate = t.isDate),
        (t.lang.isElement = t.isElement),
        (t.lang.isObject = t.isObject),
        (t.lang.isString = t.isString),
        (t.lang.register = t.base.register),
        (t.lang.toArray = function(e) {
          if (e === null || e === undefined) return [];
          if (t.lang.isArray(e)) return e;
          if (
            typeof e.length != "number" ||
            typeof e == "string" ||
            t.lang.isFunction(e)
          )
            return [e];
          if (e.item) {
            var n = e.length,
              r = new Array(n);
            while (n--) r[n] = e[n];
            return r;
          }
          return [].slice.call(e);
        }),
        t.number.extend({
          comma: function(e) {
            var t = this;
            if (!e || e < 1) e = 3;
            return (
              (t = String(t).split(".")),
              (t[0] = t[0].replace(
                new RegExp("(\\d)(?=(\\d{" + e + "})+$)", "ig"),
                "$1,"
              )),
              t.join(".")
            );
          }
        }),
        (t.number.randomInt = function(e, t) {
          return Math.floor(Math.random() * (t - e + 1) + e);
        }),
        (t.object.clone = function(e) {
          var n = e,
            r,
            i;
          if (
            !e ||
            e instanceof Number ||
            e instanceof String ||
            e instanceof Boolean
          )
            return n;
          if (t.lang.isArray(e)) {
            n = [];
            var s = 0;
            for (r = 0, i = e.length; r < i; r++) n[s++] = t.object.clone(e[r]);
          } else if (t.object.isPlain(e)) {
            n = {};
            for (r in e) e.hasOwnProperty(r) && (n[r] = t.object.clone(e[r]));
          }
          return n;
        }),
        (t.object.each = function(e, t) {
          var n, r, i;
          if ("function" == typeof t)
            for (r in e)
              if (e.hasOwnProperty(r)) {
                (i = e[r]), (n = t.call(e, i, r));
                if (n === !1) break;
              }
          return e;
        }),
        (t.object.isEmpty = function(e) {
          var t = !0;
          if ("[object Array]" === Object.prototype.toString.call(e))
            t = !e.length;
          else {
            e = new Object(e);
            for (var n in e) return !1;
          }
          return t;
        }),
        (t.object.keys = function(e) {
          var t = [],
            n = 0,
            r;
          for (r in e) e.hasOwnProperty(r) && (t[n++] = r);
          return t;
        }),
        (t.object.map = function(e, t) {
          var n = {};
          for (var r in e) e.hasOwnProperty(r) && (n[r] = t(e[r], r));
          return n;
        }),
        (t.object.merge = (function() {
          function e(e) {
            return t.lang.isObject(e) && !t.lang.isFunction(e);
          }
          function n(n, r, i, s, o) {
            if (r.hasOwnProperty(i))
              if (o && e(n[i]))
                t.object.merge(n[i], r[i], { overwrite: s, recursive: o });
              else if (s || !(i in n)) n[i] = r[i];
          }
          return function(e, t, r) {
            var i = 0,
              s = r || {},
              o = s.overwrite,
              u = s.whiteList,
              a = s.recursive,
              f;
            if (u && u.length) {
              f = u.length;
              for (; i < f; ++i) n(e, t, u[i], o, a);
            } else for (i in t) n(e, t, i, o, a);
            return e;
          };
        })()),
        (t.object.values = function(e) {
          var t = [],
            n = 0,
            r;
          for (r in e) e.hasOwnProperty(r) && (t[n++] = e[r]);
          return t;
        }),
        (t.page.getHeight = function() {
          var e = document,
            t = e.body,
            n = e.documentElement,
            r = e.compatMode == "BackCompat" ? t : e.documentElement;
          return Math.max(n.scrollHeight, t.scrollHeight, r.clientHeight);
        }),
        (t.page.getViewHeight = function() {
          var e = document,
            n = t.browser.ie || 1,
            r =
              e.compatMode === "BackCompat" && n < 9
                ? e.body
                : e.documentElement;
          return r.clientHeight;
        }),
        (t.page.getViewWidth = function() {
          var e = document,
            t = e.compatMode == "BackCompat" ? e.body : e.documentElement;
          return t.clientWidth;
        }),
        (t.page.getWidth = function() {
          var e = document,
            t = e.body,
            n = e.documentElement,
            r = e.compatMode == "BackCompat" ? t : e.documentElement;
          return Math.max(n.scrollWidth, t.scrollWidth, r.clientWidth);
        }),
        (t.platform =
          t.platform ||
          (function() {
            var e = navigator.userAgent,
              n = function() {};
            return (
              t.forEach(
                "Android iPad iPhone Linux Macintosh Windows X11".split(" "),
                function(r) {
                  var i = r.charAt(0).toUpperCase() + r.toLowerCase().substr(1);
                  t["is" + i] = n["is" + i] = !!~e.indexOf(r);
                }
              ),
              n
            );
          })()),
        (t.plugin = function(e, n, r, i) {
          var s = t.isPlainObject(n),
            o;
          return (
            s || ((i = r), (r = n)),
            t.type(r) != "function" && (r = undefined),
            t.type(i) != "function" && (i = undefined),
            (o = t.createChain(e, r, i)),
            s && o.extend(n),
            o
          );
        }),
        (t.post = t.post || t._util_.smartAjax("post")),
        (t.setBack = function(e, t) {
          return (
            (e._back_ = t),
            (e.getBack = function() {
              return this._back_;
            }),
            e
          );
        }),
        t.createChain(
          "sio",
          function(e) {
            switch (typeof e) {
              case "string":
                return new t.sio.$Sio(e);
            }
          },
          function(e) {
            this.url = e;
          }
        ),
        (t.sio._createScriptTag = function(e, t, n) {
          e.setAttribute("type", "text/javascript"),
            n && e.setAttribute("charset", n),
            e.setAttribute("src", t),
            document.getElementsByTagName("head")[0].appendChild(e);
        }),
        (t.sio._removeScriptTag = function(e) {
          if (e.clearAttributes) e.clearAttributes();
          else for (var t in e) e.hasOwnProperty(t) && delete e[t];
          e && e.parentNode && e.parentNode.removeChild(e), (e = null);
        }),
        t.sio.extend({
          callByBrowser: function(e, n) {
            var r = this.url,
              i = document.createElement("SCRIPT"),
              s = 0,
              o = n || {},
              u = o.charset,
              a = e || function() {},
              f = o.timeOut || 0,
              l;
            (i.onload = i.onreadystatechange = function() {
              if (s) return;
              var e = i.readyState;
              if ("undefined" == typeof e || e == "loaded" || e == "complete") {
                s = 1;
                try {
                  a(), clearTimeout(l);
                } finally {
                  (i.onload = i.onreadystatechange = null),
                    t.sio._removeScriptTag(i);
                }
              }
            }),
              f &&
                (l = setTimeout(function() {
                  (i.onload = i.onreadystatechange = null),
                    t.sio._removeScriptTag(i),
                    o.onfailure && o.onfailure();
                }, f)),
              t.sio._createScriptTag(i, r, u);
          }
        }),
        t.sio.extend({
          callByServer: function(e, n) {
            function v(n) {
              return function() {
                try {
                  n
                    ? a.onfailure && a.onfailure()
                    : (e.apply(window, arguments), clearTimeout(h)),
                    (window[o] = null),
                    delete window[o];
                } catch (r) {
                } finally {
                  t.sio._removeScriptTag(i);
                }
              };
            }
            var r = this.url,
              i = document.createElement("SCRIPT"),
              s = "bd__cbs__",
              o,
              u,
              a = n || {},
              f = a.charset,
              l = a.queryField || "callback",
              c = a.timeOut || 0,
              h,
              p = new RegExp("(\\?|&)" + l + "=([^&]*)"),
              d;
            if (t.lang.isFunction(e))
              (o = s + Math.floor(Math.random() * 2147483648).toString(36)),
                (window[o] = v(0));
            else if (t.lang.isString(e)) o = e;
            else if ((d = p.exec(r))) o = d[2];
            c && (h = setTimeout(v(1), c)),
              (r = r.replace(p, "$1" + l + "=" + o)),
              r.search(p) < 0 &&
                (r += (r.indexOf("?") < 0 ? "?" : "&") + l + "=" + o),
              t.sio._createScriptTag(i, r, f);
          }
        }),
        t.sio.extend({
          log: function() {
            var e = this.url,
              t = new Image(),
              n =
                "tangram_sio_log_" +
                Math.floor(Math.random() * 2147483648).toString(36);
            (window[n] = t),
              (t.onload = t.onerror = t.onabort = function() {
                (t.onload = t.onerror = t.onabort = null),
                  (window[n] = null),
                  (t = null);
              }),
              (t.src = e);
          }
        }),
        t.string.extend({
          decodeHTML: function() {
            var e = this.replace(/&quot;/g, '"')
              .replace(/&lt;/g, "<")
              .replace(/&gt;/g, ">")
              .replace(/&amp;/g, "&");
            return e.replace(/&#([\d]+);/g, function(e, t) {
              return String.fromCharCode(parseInt(t, 10));
            });
          }
        }),
        t.string.extend({
          encodeHTML: function() {
            return this.replace(/&/g, "&amp;")
              .replace(/</g, "&lt;")
              .replace(/>/g, "&gt;")
              .replace(/"/g, "&quot;")
              .replace(/'/g, "&#39;");
          }
        }),
        t.string.extend({
          format: function(e) {
            var t = this.valueOf(),
              n = Array.prototype.slice.call(arguments, 0),
              r = Object.prototype.toString;
            return n.length
              ? ((n =
                  n.length == 1
                    ? e !== null &&
                      /\[object Array\]|\[object Object\]/.test(r.call(e))
                      ? e
                      : n
                    : n),
                t.replace(/#\{(.+?)\}/g, function(e, t) {
                  var i = n[t];
                  return (
                    "[object Function]" == r.call(i) && (i = i(t)),
                    "undefined" == typeof i ? "" : i
                  );
                }))
              : t;
          }
        }),
        t.string.extend({
          getByteLength: function() {
            return this.replace(/[^\x00-\xff]/g, "ci").length;
          }
        }),
        t.string.extend({
          stripTags: function() {
            return (this || "").replace(/<[^>]+>/g, "");
          }
        }),
        t.string.extend({
          subByte: function(e, n) {
            t.check("number(,string)?$", "baidu.string.subByte");
            if (e < 0 || this.getByteLength() <= e) return this.valueOf();
            var r = this.substr(0, e)
              .replace(/([^\x00-\xff])/g, "$1 ")
              .substr(0, e)
              .replace(/[^\x00-\xff]$/, "")
              .replace(/([^\x00-\xff]) /g, "$1");
            return r + (n || "");
          }
        }),
        t.string.extend({
          toHalfWidth: function() {
            return this.replace(/[\uFF01-\uFF5E]/g, function(e) {
              return String.fromCharCode(e.charCodeAt(0) - 65248);
            }).replace(/\u3000/g, " ");
          }
        }),
        t.string.extend({
          wbr: function() {
            return this.replace(
              /(?:<[^>]+>)|(?:&#?[0-9a-z]{2,6};)|(.{1})/gi,
              "$&<wbr>"
            ).replace(/><wbr>/g, ">");
          }
        }),
        (t.swf = t.swf || {}),
        (t.swf.version = (function() {
          var e = navigator;
          if (e.plugins && e.mimeTypes.length) {
            var t = e.plugins["Shockwave Flash"];
            if (t && t.description)
              return (
                t.description
                  .replace(/([a-zA-Z]|\s)+/, "")
                  .replace(/(\s)+r/, ".") + ".0"
              );
          } else if (window.ActiveXObject && !window.opera)
            for (var n = 12; n >= 2; n--)
              try {
                var r = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + n);
                if (r) {
                  var i = r.GetVariable("$version");
                  return i.replace(/WIN/g, "").replace(/,/g, ".");
                }
              } catch (s) {}
        })()),
        (t.swf.createHTML = function(e) {
          e = e || {};
          var n = t.swf.version,
            r = e.ver || "6.0.0",
            i,
            s,
            o,
            u,
            a,
            f,
            l = {},
            c = t.string.encodeHTML;
          for (u in e) l[u] = e[u];
          e = l;
          if (!n) return "";
          (n = n.split(".")), (r = r.split("."));
          for (o = 0; o < 3; o++) {
            (i = parseInt(n[o], 10)), (s = parseInt(r[o], 10));
            if (s < i) break;
            if (s > i) return "";
          }
          var h = e.vars,
            p = ["classid", "codebase", "id", "width", "height", "align"];
          (e.align = e.align || "middle"),
            (e.classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"),
            (e.codebase =
              "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"),
            (e.movie = e.url || ""),
            delete e.vars,
            delete e.url;
          if ("string" == typeof h) e.flashvars = h;
          else {
            var d = [];
            for (u in h) (f = h[u]), d.push(u + "=" + encodeURIComponent(f));
            e.flashvars = d.join("&");
          }
          var v = ["<object "];
          for (o = 0, a = p.length; o < a; o++)
            (f = p[o]), v.push(" ", f, '="', c(e[f]), '"');
          v.push(">");
          var m = {
            wmode: 1,
            scale: 1,
            quality: 1,
            play: 1,
            loop: 1,
            menu: 1,
            salign: 1,
            bgcolor: 1,
            base: 1,
            allowscriptaccess: 1,
            allownetworking: 1,
            allowfullscreen: 1,
            seamlesstabbing: 1,
            devicefont: 1,
            swliveconnect: 1,
            flashvars: 1,
            movie: 1
          };
          for (u in e)
            (f = e[u]),
              (u = u.toLowerCase()),
              m[u] &&
                (f || f === !1 || f === 0) &&
                v.push('<param name="' + u + '" value="' + c(f) + '" />');
          (e.src = e.movie),
            (e.name = e.id),
            delete e.id,
            delete e.movie,
            delete e.classid,
            delete e.codebase,
            (e.type = "application/x-shockwave-flash"),
            (e.pluginspage = "http://www.macromedia.com/go/getflashplayer"),
            v.push("<embed");
          var g;
          for (u in e) {
            f = e[u];
            if (f || f === !1 || f === 0) {
              if (new RegExp("^salign$", "i").test(u)) {
                g = f;
                continue;
              }
              v.push(" ", u, '="', c(f), '"');
            }
          }
          return (
            g && v.push(' salign="', c(g), '"'),
            v.push("></embed></object>"),
            v.join("")
          );
        }),
        (t.swf.create = function(e, n) {
          e = e || {};
          var r = t.swf.createHTML(e) || e.errorMessage || "";
          n && "string" == typeof n && (n = document.getElementById(n)),
            t.dom.insertHTML(n || document.body, "beforeEnd", r);
        }),
        (t.swf.getMovie = function(e) {
          var n = document[e],
            r;
          return t.browser.ie == 9
            ? n && n.length
              ? (r = t.array.remove(t.lang.toArray(n), function(e) {
                  return e.tagName.toLowerCase() != "embed";
                })).length == 1
                ? r[0]
                : r
              : n
            : n || window[e];
        }),
        (t.swf.Proxy = function(e, n, r) {
          var i = this,
            s = (this._flash = t.swf.getMovie(e)),
            o;
          if (!n) return this;
          o = setInterval(function() {
            try {
              s[n] && ((i._initialized = !0), clearInterval(o), r && r());
            } catch (e) {}
          }, 100);
        }),
        (t.swf.Proxy.prototype.getFlash = function() {
          return this._flash;
        }),
        (t.swf.Proxy.prototype.isReady = function() {
          return !!this._initialized;
        }),
        (t.swf.Proxy.prototype.call = function(e, t) {
          try {
            var n = this.getFlash(),
              r = Array.prototype.slice.call(arguments);
            r.shift(), n[e] && n[e].apply(n, r);
          } catch (i) {}
        }),
        (function(e) {
          var n = document.createElement("div");
          (e.inlineBlockNeedsLayout = !1),
            (e.shrinkWrapBlocks = !1),
            t(document).ready(function() {
              var t = document.body,
                r = document.createElement("div");
              (r.style.cssText =
                "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"),
                t.appendChild(r).appendChild(n),
                typeof n.style.zoom != "undefined" &&
                  ((n.style.cssText =
                    "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;width:1px;padding:1px;display:inline;zoom:1"),
                  (e.inlineBlockNeedsLayout = n.offsetWidth === 3),
                  (n.style.display = "block"),
                  (n.innerHTML = "<div></div>"),
                  (n.firstChild.style.width = "5px"),
                  (e.shrinkWrapBlocks = n.offsetWidth !== 3)),
                t.removeChild(r),
                (r = n = t = null);
            });
        })(t._util_.support),
        t
      );
    })());
  t.T = r;
});
